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,与对错无关

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

函数传参

内部传参

先赋值(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值