2009-11-19 63 views
0

所以我只是在處理一些簡單的算術代碼。下面是我的了:linux腳本簡單的算術代碼

echo "The number should be 2"; 

declare -i input added 

input= date +%w 

let added="input/2" 

echo "$added" 

當我運行它的輸出是

4 
0 

我想只得到2到底什麼是我做錯了什麼?

回答

6

問題是你如何創建input變量。它只是執行該命令,但不會將結果分配給input。相反,這樣做:

input=$(date +%w) 

這將date命令的輸出分配給input

3

另一種方法:

#Just echo the result: 
expr $(date +%w)/2 

#store the result into a variable: 
input=$(expr $(date +%w)/2) 

echo $input 
2 
+0

無需調用外部expr。 bash可以自己做一些算術運算。 – ghostdog74 2009-11-20 00:58:59

0

有一點需要注意的是,在bash,那麼你一般不能有等號周圍的空間。

的替代語法使用let是使用$(())(())

var2=$((var1/2)) 

或者

((var2 = var1/2)) 

雙括號內,你可以使用空格,你可以從省略美元符號變量名稱的開頭。