我是Unix新手。我嘗試添加值如下所述:如何在UNIX中添加值?
var='expr 2 + 2'
echo "Total value: $var"
我希望輸出是Total value: 4
。相反,我得到Total value: expr 2 + 2
。
任何人都可以幫助我找出我的錯誤嗎?
我是Unix新手。我嘗試添加值如下所述:如何在UNIX中添加值?
var='expr 2 + 2'
echo "Total value: $var"
我希望輸出是Total value: 4
。相反,我得到Total value: expr 2 + 2
。
任何人都可以幫助我找出我的錯誤嗎?
簡單的方法:
var=$((2 + 2))
或者bc
(計算機語言)的方式來進行數學計算:
var=$(echo '2 + 2' | bc)
echo "Total value: $var"
Total value: 4
var=$(expr "2" + "2")
echo "Total value: $var"
你需要知道一個殼概念:當你寫var='expr 2 + 2'
,這是一個字符串。但是你想要得到這個命令的結果。 爲此,您需要編寫$(expr 2 + 2)
來執行該命令,並替換其輸出。
這裏有一個工作更換:
var=$(expr 2 + 2)
echo "Total value: $var"
歡迎Unix世界! ;)
另一種方式:
var=$((2 + 2))
echo "Total value: $var"
(編輯:沒有稱這是一個bashism)
貌似矯枉過正,我 - 'expr'就好了。重要的是命令替換,使用'''command''或'$(command)' –
@TobySpeight,'var = $((2 + 2))'更好(可移植性)。 'bc'適合擴展數學計算 – RomanPerekhrest
如果使用十進制(非整數)數字,請記住使用'bc -l'。 –