用于在bash中添加的循环结构

时间:2016-12-01 23:48:25

标签: bash

我是新手,我正在尝试做的是在bash中创建一个简单的添加脚本。

我必须使用for循环。到目前为止我的开始是这样的:

#!/bin/bash

sum=0
for num in {1..15}

do
       echo $num
done
       echo$sum

如果输入:

,我需要有关如何制作for循环的帮助
add 4 -3 2 8

它将输出为:

4
-3
2
8
=11

如何制作,$num只显示我输入的内容,例如'4 -3 2 8'和否定数字?

2 个答案:

答案 0 :(得分:1)

您可以使用$@获取所有参数,并使用$(())进行算术运算。

sum=0
for num in $@
do
    sum=$((sum + num))
done

echo $@ = $sum

我会将您的问题重新定位为bash; d不合适。

答案 1 :(得分:0)

我正在尝试创建一个退出错误,以便现在扩展上一个脚本。如果我现在输入任何数字而不是数字,到目前为止我尝试的是:

sum=0
for num in "$@"
do
   echo $num | grep -i [^0-9+-]
 if ["$?" = 1] then
   echo "Sorry, '$num' is not a number"
 fi

    sum=$((sum + num))  
done
    echo $sum

如果我输入

的示例
add 1 2 3 four five

它会说

 four
 Sorry, 'four' is not a number