Shell 函数


一、Shell 函数

shell 函数的定义格式:

[ function ] funname [()]
{
	action;
	[return int;]
}

说明:

  • 可以 function fun() 定义,也可以 fun() 定义,不带任何参数。
  • 参数返回,可以加 return 返回,如果不加,以最后一条命令运行结果,作为返回值。return 后跟数值 n(0-255)

实例:

demoFun(){
	echo "一个 shell 函数:"
}
echo "----函数开始执行----"
demoFun
echo "----函数执行完毕----"

运行结果:

----函数开始----
一个 shell 函数
----函数结束----

funWithReturn(){
	echo "两个数字相加运算的函数:"
	echo "输入第一个数字:"
	read Num1
	echo "输入第二个数字:"
	read Num2
	echo "两个数字分别为:$Num1 和 $Num2"
	return $(($Num1+$Num2))
}
funWithReturn
echo "输入的两个数字之和为:$?"

运行结果:

两个数字相加运算函数:
第一个数字:
3
第二个数字:
4
两个数字分别为:3 和 4
输入的两个数字之和为:7

函数返回值的调用通过 $? 来获得。

注意:所有函数在使用前必须定义。意味必须将函数放在脚本的开始部分,直至 shell 解释器首次发现它。调用函数仅使用函数名即可。



二、函数参数

通过 $n来获取参数的值。

当 n≥10,用${n}获取参数的值。

实例:

funWithParam(){
    echo "第一个参数为:$1"
    echo "第二个参数为:$2"
    echo "第十个参数为:${10}"
    echo "参数总数有 $# 个!"
    echo "作为一个字符串输出所有参数:$*"
}
funWithParam 1 2 3 4 5 6 7 8 9 34 72

运行结果

第一个参数为:1
第二个参数为:2
第十个参数为:34
参数总数有 11 个!
作为一个字符串输出所有参数:1 2 3 4 5 6 7 8 9 34 72

几个特殊字符处理参数:

$#:传递脚本的参数个数

$*:传递脚本的所有参数(一个参数)

$$:传递当前进程ID号

$!:传递后台运行的最后一个进程ID号

$@:与$*相同,传递脚本的所有参数(多个参数)

$?:显示最后命令的退出状态。0表示没有错误,其他值表明有错误

$-:显示 Shell 当前选项,与 set 功能相同

posted @ 2021-09-06 10:36  做梦当财神  阅读(96)  评论(0编辑  收藏  举报