格式直接举例说明
#!/bin/bash
#自定义函数;前面的function可以去掉
function doSomething(){
echo "这是名为doSomething的函数"
}
doSomething2(){
echo "这是名为doSomething2的函数 "
}
#调用函数直接写函数名即可
echo "-----函数开始执行-----"
doSomething
doSomething2
echo "-----函数执行完毕-----"
执行结果:
-----函数开始执行-----
这是名为doSomething的函数
这是名为doSomething2的函数
-----函数执行完毕-----
带返回值的函数
#!/bin/bash
returnFunction(){
echo "此函数计算两个数字之和"
echo "请输入第一个数字:"
read num1
echo "请输入第二个数字:"
read num2
echo "两个数字分别是$num1 和 $num2"
return $(($num1+$num2))
}
#调用函数通过 $? 获取返回值
returnFunction
echo "两数之和为 $? "
执行结果:
此函数计算两个数字之和
请输入第一个数字:
23
请输入第二个数字:
34
两个数字分别是23 和 34
两数字之和为 57
函数接收参数
#!/bin/bash
getParamFunction(){
echo "第一个参数为 $1"
echo "第二个参数为 $2"
#$10这样无法获取第十个和大于第十个的参数,需要加上花括号 ${10}
echo "第十个参数为 $10"
echo "第十个参数为 ${10}"
echo "第十一个参数为 ${11}"
echo "参数个数为 $#"
echo "作为字符串输出所有参数 $*"
}
getParamFunction 1 2 3 4 5 6 7 8 9 54 76
执行结果:
第一个参数为 1
第二个参数为 2
第十个参数为 10
第十个参数为 54
第十一个参数为 76
参数个数为 11
作为字符串输出所有参数 1 2 3 4 5 6 7 8 9 54 76
参数 | 作用 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与$*相同,但是使用时加引号,并在引号中返回每个参数 |
$- | 显示Shell使用的当前选项,与set命令功能相同 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误 |