所以我只是在處理一些簡單的算術代碼。下面是我的了:linux腳本簡單的算術代碼
echo "The number should be 2";
declare -i input added
input= date +%w
let added="input/2"
echo "$added"
當我運行它的輸出是
4
0
我想只得到2到底什麼是我做錯了什麼?
所以我只是在處理一些簡單的算術代碼。下面是我的了:linux腳本簡單的算術代碼
echo "The number should be 2";
declare -i input added
input= date +%w
let added="input/2"
echo "$added"
當我運行它的輸出是
4
0
我想只得到2到底什麼是我做錯了什麼?
問題是你如何創建input
變量。它只是執行該命令,但不會將結果分配給input
。相反,這樣做:
input=$(date +%w)
這將date
命令的輸出分配給input
。
另一種方法:
#Just echo the result:
expr $(date +%w)/2
#store the result into a variable:
input=$(expr $(date +%w)/2)
echo $input
2
有一點需要注意的是,在bash,那麼你一般不能有等號周圍的空間。
的替代語法使用let
是使用$(())
或(())
:
var2=$((var1/2))
或者
((var2 = var1/2))
雙括號內,你可以使用空格,你可以從省略美元符號變量名稱的開頭。
無需調用外部expr。 bash可以自己做一些算術運算。 – ghostdog74 2009-11-20 00:58:59