一、函数的定义与调用
在Shell脚本中,函数是一种可重用的代码块,它的定义与调用方法相对灵活,本小节将从函数的定义与调用两方面展开讲解。
函数定义
function 函数名(){
命令序列
}
或
函数名(){
命令序列
}
函数的定义关键字可以省略,两种定义方式的效果相同。
函数调用
函数名 参数列表
调用函数时,参数列表可以为空或者包含多个参数,参数间以空格隔开。调用函数的时候,需要在函数名后紧跟一对圆括号进行调用,以示当前语句为函数调用语句。
二、函数内部变量与返回值
函数内部可以使用变量,这些变量默认是全局变量,但是在函数内部定义的局部变量需要用local命令进行声明。函数的返回值可以是数字、字符串或者数组。
声明内部局部变量
function 函数名(){
local 局部变量名
命令序列
}
返回值
return 值
除了使用return命令返回值以外,还可以将值打印到标准输出中,通过命令替换的方式获得返回值(命令替换的语法是反引号或者$())。
示例代码:
function add(){
((sum=$1+$2))
echo $sum
}
result=`add 10 20`
echo $result
三、函数示例
以下代码实现了一个简单的计算器,用函数的方式实现了四则运算功能,并增加了异常处理(例如除数为零等情况)。
function add(){
((sum=$1+$2))
echo $sum
}
function substract(){
((result=$1-$2))
echo $result
}
function multiply(){
((result=$1*$2))
echo $result
}
function divide(){
if [ $2 -eq 0 ]; then
echo "Divisor cannot be zero!"
exit 1
fi
((result=$1/$2))
echo $result
}
read -p "请输入操作数1: " num1
read -p "请输入操作数2: " num2
read -p "请输入运算符(+,-,*,/): " operator
case $operator in
+)
add $num1 $num2;;
-)
substract $num1 $num2;;
\*)
multiply $num1 $num2;;
/)
divide $num1 $num2;;
*)
echo "Invalid operator!";;
esac
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245577.html