linux_shell_函数
3. shell语法——函数
bash
中的函数类似于C/C++
中的函数,但return
的返回值与C/C++
不同,返回的是exit code
,取值为0-255,0表示正常结束。
如果想获取函数的输出结果,可以通过echo
输出到stdout
中,然后通过$(function_name)
来获取stdout
中的结果。
函数的return
值可以通过$?
来获取。
命令格式:
1 | [function] func_name() { # function关键字可以省略 |
不获取 return
值和stdout
值
示例
1 | func() { |
输出结果:
1 | Hello yxc |
获取 return
值和stdout
值
不写return
时,默认return 0
。
示例
1 | func() { |
输出结果:
1 | output = Hello yxc |
函数的输入参数
在函数内,$1
表示第一个输入参数,$2
表示第二个输入参数,依此类推。
注意:函数内的$0
仍然是文件名,而不是函数名。
示例:
1 | func() { # 递归计算 $1 + ($1 - 1) + ($1 - 2) + ... + 0 |
输出结果:
1 | 55 |
函数内的局部变量
可以在函数内定义局部变量,作用范围仅在当前函数内。
可以在递归函数中定义局部变量。
命令格式:
1 | local 变量名=变量值 |
例如:
1 | ! /bin/bash |
输出结果:
1 | yxc |
第一行为函数内的name变量,第二行为函数外调用name变量,会发现此时该变量不存在。
此文章版权归waar299所有,如有转载,请注明来自原作者!
评论