2016-12-01 20 views
0

我是新来的,我想要做的是在bash中创建一个简单的添加脚本。我不得不使用for循环。什么我开始到目前为止是这样的:For loop结构添加在bash中

#!/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'和负数?

回答

1

您可以使用[email protected]来获取所有参数,并使用$(())来进行算术运算。

sum=0 
for num in [email protected] 
do 
    sum=$((sum + num)) 
done 

echo [email protected] = $sum 

我会将您的问题保存为bash; d不合适。

+0

如果只是有奖励代表做别人的功课。 +1 – bishop

+0

必须引用$ @才能将其识别为单独的值,否则:split + glob运算符将接受控制。无论是在'$ @“中输入num,还是在最后一个echo:'echo”$ @ = Ssum“'。我简短:引用您的扩展。 – sorontar

0

我试图创建一个退出错误来扩展现有的脚本。如果我输入什么,但现在一些什么我迄今试图为:

sum=0 
for num in "[email protected]" 
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