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