쉘 기능
Linux 쉘을 사용하면 사용자가 함수를 정의한 다음 쉘 스크립트에서 원하는 대로 호출할 수 있습니다.
셸의 함수 정의 형식은 다음과 같습니다.
[ function ] funname [()] { action; [return int;] }
지침:
1 fun() 함수로 정의하거나 매개변수 없이 fun()으로 직접 정의할 수 있습니다.
2. 매개변수 반환: 표시에 반환을 추가할 수 있습니다. 그렇지 않은 경우 마지막 명령 실행 결과가 반환 값으로 사용됩니다. return 다음에 n(0-255
다음 예제에서는 함수를 정의하고 호출합니다.
#!/bin/bash # author:php中文网 # url:www.php.cn demoFun(){ echo "这是我的第一个 shell 函数!" } echo "-----函数开始执行-----" demoFun echo "-----函数执行完毕-----"
출력 결과:
-----函数开始执行----- 这是我的第一个 shell 函数! -----函数执行完毕-----
다음에서는 return 문이 있는 함수를 정의합니다.
#!/bin/bash # author:php中文网 # url:www.php.cn funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn echo "输入的两个数字之和为 $? !"
출력은 비슷합니다.
这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 1 输入第二个数字: 2 两个数字分别为 1 和 2 ! 输入的两个数字之和为 3 !
함수 호출 후 $?를 통해 함수 반환 값을 얻습니다.
참고: 모든 함수는 사용 전에 정의해야 합니다. 즉, 함수는 셸이 시작될 때까지 스크립트 시작 부분에 배치되어야 합니다. 함수 이름을 사용하면 됩니다.
함수 매개변수
쉘에서는 함수 호출 시 매개변수 값을 전달할 수 있습니다. 예를 들어 $n 형식에서 $1은 첫 번째 매개변수를 나타내고 $2는 두 번째 매개변수를 나타냅니다.
매개변수가 있는 함수의 예:
#!/bin/bash # author:php中文网 # url:www.php.cn funWithParam(){ echo "第一个参数为 !" echo "第二个参数为 !" echo "第十个参数为 !" echo "第十个参数为 !" echo "第十一个参数为 !" 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번째 매개변수를 얻을 수 없습니다. 10번째 매개변수인 ${10}을 얻어야 합니다. n>=10인 경우에는 ${n}을 사용하여 매개변수를 가져와야 합니다.
또한 매개변수를 처리하는 데 사용되는 몇 가지 특수 문자가 있습니다.
매개변수 처리 | 설명 |
---|---|
$# | 스크립트에 전달된 매개변수의 수 |
$* | 스크립트에 전달된 모든 매개변수를 단일 문자열로 표시합니다 |
$$ | 실행 중인 스크립트의 현재 프로세스 ID 번호 |
$! | 백그라운드에서 실행 중인 마지막 프로세스의 ID 번호 |
$@ | $*와 동일하지만 따옴표로 사용되며 각 매개변수를 따옴표로 반환합니다. |
$- | set 명령과 동일한 기능을 가진 쉘에서 사용되는 현재 옵션을 표시합니다. |
$? | 마지막 명령의 종료 상태를 표시합니다. 0은 오류가 없음을 나타내고, 다른 값은 오류를 나타냅니다. |