shell if 非_Shell编程:编写sum函数,计算所有参数之和

Shell编程:编写sum函数,计算所有参数之和

7ae4d92b43459f8f9a79e8e9a08b9f84.png

今天有网友求助,说是正在考试,有一道题不会做。题目不是很难:编写sum函数,计算所有参数之和。这道题的编码思路很简单,只涉及数学运算和shell参数。

花了几分钟,初步的测试代码如下:

219e3a3d0e608674dde24a05ee293c35.png
sum=0for i in $@     do    sum=`expr $sum + $i`doneecho $sum

$@ 是取shell脚本接收到的所有参数,使用for in 来迭代取出每个参数

expr 就是计算表达式,比如expr foo=1 + 1 ,结果为2

试运行:

7a5cf2aa8c237aae2bc4a1e57ab9b257.png

可以看到,运算结果是正确的,稍加修改这道题就可以交卷了

最终代码:

#!/bin/bash# filename: getsum.shfunction params_sum(){    sum=0    for i in $@    do          sum=`expr $sum + $i` 2>/dev/null        # 如果expr 的退出码不为0,则参数中包含字符或者其它非整数,提示用户重新输入        if [[ $? -ne 0 ]];then            echo "$i is not a Integer number ,please reenter!"        fi      done    echo $sum}params_sum $@

解释:

利用 expr 的报错来判断所输入的参数是否是整数,如果有字符或者浮点数则报错,提示重新输入

2>/dev/null 将expr 报错指向null

13e022c7cfff33a1be229246d9f8dedd.png

运行结果:

e06916625830ccf0ea0c0b1b8e1c7016.png
dff3bf48f855b05f19745432b40b9c43.png

这段代码仍不完美,下一篇文章详细介绍 Shell运算 和shell参数处理之后再修改它,相信聪明的读者已经看出问题所在了吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值