shell 脚本-函数
函数定义
带 function
标识的函数定义
示例代码
function fn1 () {
echo "执行了 fn1 函数"
}
# 函数执行
fn1
执行结果
执行了 fn1 函数
不带 function
标识的函数定义
示例代码
fn2 () {
echo "执行了 fn2 函数"
}
# 函数执行
fn2
执行结果
执行了 fn2 函数
函数的参数
函数内使用 $n
或 ${n}
访问对应的参数, 数字代表参数的前后顺序, $1 代表第一个参数, $2 代表第三个参数, $n 代表第n个参数.
注: $10
不能获取第十个参数,获取第十个参数需要${10}
。当n>=10时,需要使用${n}
来获取参数。
此外还可以使用 $#
获取参数的个数, 使用 $*
和 $@
获取所有的参数
$*
和$@
的区别参考 shell脚本-参数 中的$*和$@ 区别
示例代码
useParams () {
echo "参数1: $1"
echo "参数2: $2"
echo "参数3: ${3}"
echo "参数个数: $#"
echo "所有参数: $*"
}
useParams 1 2 3 4 s
执行结果
参数1: 1
参数2: 2
参数3: 3
参数个数: 5
所有参数: 1 2 3 4 s
函数返回值
函数中使用 return
标识定义返回值, 如果没有 return
将以最后一条命令运行结果作为返回值.
函数执行后使用 $?
获取返回值
示例代码
sum () {
total=`expr $1 + $2`
return $total
}
sum 1 2
echo "sum 函数返回值: $?"
执行结果
sum 函数返回值: 3