shell中函数以及递归用法

在 Shell 脚本中,函数可以用来封装一段可重用的代码,这些代码可以被多次调用,从而提高脚本的可维护性和复用性。

函数可以将大的工程分成若干小块,以此执行,提高代码的可读性

函数的定义通常具有以下格式:

function_name() {
    # 函数体
    ...
}

其中,function_name 是函数名,括号中可以包含参数列表,函数体中包含实现代码。


zzr () {
a=1
b=2
c=$(($a+$b))
echo $c
}
zzr

结果显而易见  为 3

返回值

返回值:return

shell中的return 范围 0-255 超出了255就会和256取余

当函数有return 返回值是函数内部执行结果,因此echo $?值也是3,与对错无关

返回值的作用:用来判断后续的代码是否正常执行

扫描二维码关注公众号,回复: 16836001 查看本文章

函数传参

内部传参

先赋值(read -p),然后通过方法调用(ky32),函数把数值传到命令序列中(sum计算)

外部传参

需要在外部输入变量

函数变量的作用范围

sh f.sh

9 全局变量的9

8 内部变量不改变

10 let i++

没有local就听内部命令 9 8 8

有local要听全局变量

(b为全局变化,不受影响)

函数的递归

本质就是自己使用自己

pow () {
        if [ $a -ne 0 ]
        then
       let sum=sum*b
       a=$(($a-1))
        pow $a $b

        fi
}
sum=1
read -p "输入指数:" a
read -p "输入底数:" b
pow $a $b
echo "$sum"

计算阶乘

zzr () {
if [ $1 -eq 1 ]
then
echo 1
else
 local temp=$(($1-1))
 local result=$(zzr $temp)
 echo "$(($1*$result))"
fi
}
read -p "输入一个数" a
result=`zzr $a`
echo $result

猜你喜欢

转载自blog.csdn.net/qq_51506982/article/details/133138991