Linux Shell编程(九)
目录
函数
1--不带返回值的函数
完整的流程
2--带返回值的函数
计算两个数字相乘
3--可以传递参数的函数
函数
1--不带返回值的函数
函数名(){
context;
}
outputFunction(){
echo "这是一个普通的函数"
}outputFunction
完整的流程
[xijiu@localhost ~]$ touch func1.sh
[xijiu@localhost ~]$ vi func1.sh
[xijiu@localhost ~]$ sh func1.sh
这是一个普通的函数
[xijiu@localhost ~]$ cat func1.shoutputFunction(){
echo "这是一个普通的函数"
}outputFunction
[xijiu@localhost ~]$
2--带返回值的函数
函数名(){
context;
return 返回值;
}
计算两个数字相乘
# 计算两个数字相乘
digits(){
echo "输入第一个数字"
read oneNum
echo "输入第二个数字"
read twoNum
result= expr $oneNum \* $twoNum
return $result
}digits
[xijiu@localhost ~]$ vi digits.sh
[xijiu@localhost ~]$ sh digits.sh
输入第一个数字
2
输入第二个数字
2
4
[xijiu@localhost ~]$ cat digits.sh
# 计算两个数字相乘digits(){
echo "输入第一个数字"
read oneNum
echo "输入第二个数字"
read twoNum
result= expr $oneNum \* $twoNum
return $result
}digits
[xijiu@localhost ~]$ sh digits.sh
输入第一个数字
43
输入第二个数字
22
946
[xijiu@localhost ~]$
3--可以传递参数的函数
- 通过$数字 ==》获取参数值
- 通过${数字} ==》获取参数值
- 通过$* ====>获取所有的参数值
- 通过$# ===>获取参数的个数
reciveFuc(){
echo "第一个参数$1";
echo "第二个参数$2"
echo "第三个参数${3}"echo "参数的个数$#"
echo "所有的参数$*"
}
reciveFuc a b 1 a s d
完成流程
[xijiu@localhost ~]$ vi send.sh
[xijiu@localhost ~]$ cat send.sh
reciveFuc(){
echo "第一个参数$1";
echo "第二个参数$2"
echo "第三个参数${3}"
echo "参数的个数$#"
echo "所有的参数$*"
}
reciveFuc a b 1 a s d
[xijiu@localhost ~]$ sh send.sh
第一个参数a
第二个参数b
第三个参数1
参数的个数6
所有的参数a b 1 a s d
[xijiu@localhost ~]$