函数
function 函数名(){函数体}
- 定义函数
[function] 函数名()
{
commend…
} - 调用函数:执行一次函数
函数名 实参 - 传递与接收实参
传递:函数名 实参1 实参2…
接收:$1 $2 $3 …
$# 传递实参的个数
$@ 引用所有实参 - 返回值:return 字符串
若函数有返回值,通过 $? 来获取
注:只有1Byte的宽度 <=255,因为Shell一般只用于配置,功能函数一般只返回TRUE或FALSE
例:求n到m的和
# !/bin/bash
function sum() #定义函数sum
{
s=0 #初始化总和s
for i in `seq $1 $2 ` #$1 $2 为参数
do
s=`expr $s + $i ` #累加
done
return $s #返回总和s
}
read -p "n: " n
read -p "m: " m
sum $n $m #调用执行函数sum,并传入参数$n为第一个,$m为第二个
echo $? #取函数返回值
结果图:
递归
自己调用自己
本质:
- 从什么时候开始
- 到什么时候结束
- 每次递归需要干什么
例:使用递归输出1-20
# !/bin/bash
function show() #定义函数名
{
if test $1 -eq 21 #结束递归的条件判定,指定一个参数
then
return #结束函数
fi
echo $1 #打印数字
show `expr $1 +1 ` #调用自己
}
show 1 #调用函数,传入参数1
结果图: