函数
函数的定义和基本知识
函数的返回值只能为退出状态0或1。
1 2 3 4 5 6 7
| function_name(){ command ... command }
function_name
|
向函数传递参数
向函数传递的参数是以位置参数
的方式传递的,不能传递数组等其他形式的变量。
1 2 3 4 5 6 7 8
| function_name(){ echo $1 echo $2 ... echo $n }
function_name $a $b ... $N
|
1 2 3 4 5 6 7 8 9 10
| half(){ let "n=$1" let "n=n/2" echo "$n" }
m=6 echo "$m" half $m echo "$m"
|
函数返回值
通过return返回退出状态,0表示无错误,1表示有错误。
1 2 3 4 5 6 7 8
| show_result(){ if [ -z $1 ] then return 1 else return 0 fi }
|
函数调用
1 2 3 4 5 6 7 8 9 10
| function_name_1(){ echo "function_name_1" }
function_name_2(){ echo "function_name_2" }
function_name_1 function_name_2
|
1 2 3 4 5 6 7 8 9 10
| function_name_1(){ echo "function_name_1" }
function_name_2(){ echo "function_name_2" function_name_1 }
function_name_2
|
局部变量和全局变量
- 可以通过
local
关键字在Shell函数中声明局部变量,局部变量将局限在函数范围内。
1 2 3 4
| text="global variable" function_name(){ local text="local variable" }
|
- 函数也可调用函数外的全局变量,如果一个局部变量和一个全局变量的名字相同,
则在函数中局部变量将会覆盖掉全局变量。
函数递归
函数可以直接或间接调用其自身。