Latest web development tutorials

Shell 함수

리눅스 쉘은, 사용자 정의 함수가 될 수 있습니다 당신은 쉽게 쉘 스크립트에서 호출 할 수 있습니다.

정의 다음과 같이 쉘 함수 형식 :

[ function ] funname [()]

{

    action;

    [return int;]

}

설명 :

  • (1), () 함수의 재미를 취할 수있는 모든 매개 변수없이, () 정의 직접 재미로 정의된다.
  • 이 리턴 파라미터가 표시 될 수 더하기 : 리턴 복귀 아닌 경우, 결과는 복귀 값으로서 상기 마지막 명령을 실행한다. (n)의 복귀 값 (0-255 뒤에

다음은 기능과 전화를 정의한다 :

#!/bin/bash
# author:本教程
# url:www.w3big.com

demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"

출력 :

-----函数开始执行-----
这是我的第一个 shell 函数!
-----函数执行完毕-----

return 문으로 함수의 다음 정의 :

#!/bin/bash
# author:本教程
# url:www.w3big.com

funWithReturn(){
    echo "这个函数会对输入的两个数字进行相加运算..."
    echo "输入第一个数字: "
    read aNum
    echo "输入第二个数字: "
    read anotherNum
    echo "两个数字分别为 $aNum 和 $anotherNum !"
    return $(($aNum+$anotherNum))
}
funWithReturn
echo "输入的两个数字之和为 $? !"

다음과 유사한 출력 :

这个函数会对输入的两个数字进行相加运算...
输入第一个数字: 
1
输入第二个数字: 
2
两个数字分别为 1 和 2 !
输入的两个数字之和为 3 !

$ 통해이 함수를 호출 후 함수의 반환 값은? 얻을 수있다.

참고 : 모든 기능을 사용하기 전에 정의해야합니다. 이 기능이 처음 발견 된 경우, 사용할 수있는 쉘 인터프리터까지 스크립트의 시작 부분에 배치되어야 함을 의미한다. 단지 그 함수 이름을 사용하여 함수를 호출합니다.


함수 인수

셸에서는 함수가 호출되는 매개 변수를 전달할 수 있습니다. 내부 함수 본문에서는, 예컨대 제 1 인수에 $ 1 번째 매개 변수에 대한 $ 2 $ N 형태의 파라미터의 값을 얻을 수 ...

매개 변수 예 기능 :

#!/bin/bash
# author:本教程
# url:www.w3big.com

funWithParam(){
    echo "第一个参数为 $1 !"
    echo "第二个参数为 $2 !"
    echo "第十个参数为 $10 !"
    echo "第十个参数为 ${10} !"
    echo "第十一个参数为 ${11} !"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数 $* !"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 73

출력 :

第一个参数为 1 !
第二个参数为 2 !
第十个参数为 10 !
第十个参数为 34 !
第十一个参数为 73 !
参数总数有 11 个!
作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 !

열 번째 매개 변수 $ {10} 필요 얻을 $ (10)는 열 번째 매개 변수를 가져올 수 없습니다. N> = 10, 당신은 $를 사용해야하는 경우 {N} 매개 변수를 얻을 수있다.

또한, 특수 문자를 처리하기 위해 여러 매개 변수가 있습니다 :

매개 변수 처리 설명
$ # 파라미터의 개수는 스크립트에 전달
$ * 하나의 문자열 표시에서 모든 매개 변수는 스크립트에 전달
$$ 스크립트의 현재의 프로세스의 ID 번호가 실행
$! 마지막으로, 프로세스는 백그라운드 ID 번호 실행
$ @ * 동일로 $,하지만 당신은 인용 부호를 사용하고, 따옴표의 각 매개 변수를 반환 할 때.
$ - 쉘은 동일한 기능 세트 명령을 사용하려면 현재 옵션을 표시합니다.
$? 마지막 명령의 종료 상태를 표시합니다. 0은 오류를 나타냅니다 및 기타 값은 오류를 나타냅니다.