函数
-
函数的定义:
FunctionName() {代码块}
或者function FunctionName {代码块}
-
函数的传参:
- 位置传参:
FunctionName $variable
,在函数内部使用参数是跟脚本一样的,$1,$2,$#,$*,$@ ,其含义相同(就相当于把函数看作一个脚本),注意区分函数里的这些符号是跟脚本的的符号表达的不是一个东西 - 数组传参:
FunctionName ${arrayname[@]}
,接受时可以用一下方式接受:newarray=($@) 或者 newarray=($*)
- 位置传参:
-
函数的返回值
- return 只能返回0~255的数,所以return可用性不强(未成功)
- 使用echo
返回变量值:echo $variable
返回数组:echo ${array[@]}
- 如果不用return和echo, 函数默认返回的时代码块最后一条命令的状态码
- 函数外接受返回值:a=`FunctionName $variable`,或者 a=`FunctionName ${array[@]}`,变量,数组都是这么接收的
-
函数内部的变量作用域
- 函数内部变量默认时全局的,但在接收函数返回值时(a=`FunctionName $variable` ),函数在子shell中执行,所以调用不了
- 使用local 声明变量为局部变量,即只在函数内部有效,如:local a
其他:for i in $@
可以简写为for i
,函数还是脚本都适用