shell函数定义
shell中函数的定义格式如下:
[ function ] funname [()]
{
action;
[return int;]
}
可以带function fun()定义也可以不带
shell函数返回值
若显示地使用return,则根据return 的值返回,否则以最后一条命令的运行结果作为返回值
例
add_func()
26 {
27 echo -e "两数相加\n"
28 echo "请输入第一个数字:"
29 read num1
30 echo "请输入第二个数字:"
31 read num2
32 return $(($num1+$num2))
33 }
34 add_func
35 echo "两数之和为$?"
函数参数
我们还可以给函数传参,在函数内部使用$n来获取函数第n个参数
如上述例子我们不想一次次输入数字,想一次性输入,则可以如下:
add_func()
26 {
27 echo -e "两数相加\n"
28 return $(($1+$2))
29 }
30 add_func 5 6
31
32 echo "两数之和为$?"
需要注意的是, 10 不 能 用 来 获 取 第 10 个 参 数 , 要 用 10不能用来获取第10个参数,要用 10不能用来获取第10个参数,要用(10),避免1和0分开
与函数参数相关的几个特殊字符
字符 | 描述 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数 |
$$ | 脚本运行的当前进程IP号 |
$! | 后台运行的最后一个进程ID号 |
$@ | 与$*相同,但使用时加引号,并在引号中返回每个参数 |
$- | 显示shell当前使用的选项,与set命令功能相同 |
$? | 显示最后命令的退出状态,0无错误,其他有错误 |