专业编程基础技术教程

网站首页 > 基础教程 正文

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

ccvgpt 2025-03-26 10:11:43 基础教程 20 ℃

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


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

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

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

sum=0
for i in $@     
do
    sum=`expr $sum \+ $i`
done
echo $sum


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

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

试运行:


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

最终代码:

#!/bin/bash
# filename: getsum.sh

function 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



运行结果:


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

Tags:

最近发表
标签列表