爲什麼我不能做這個簡單的算術運算並將其存儲在bash shell中的變量中?我一直在努力,並與()
和$
符號玩,但沒有運氣。「簡單」算術
read t
let r=$(5/9)*$($t-32)
我得到a: let: r=*: syntax error: operand expected (error token is "*")
爲什麼我不能做這個簡單的算術運算並將其存儲在bash shell中的變量中?我一直在努力,並與()
和$
符號玩,但沒有運氣。「簡單」算術
read t
let r=$(5/9)*$($t-32)
我得到a: let: r=*: syntax error: operand expected (error token is "*")
當您使用讓聲明,你不需要美元符號,但單引號的表達而是爲了讓shell預處理器免於與運營商混淆。請注意,bash似乎無法處理不是整數的數字,因此(5/9)表達式將始終爲零。試試第二個let語句。
read -p 'Temp in Fahrenheit (no decimals): ' t
# let r='(5/9)*(t-32)' -- this doesn't work
let r='5*(t-32)/9'
echo "Centigrade: $r"
它不起作用,因爲bash只執行整數運算,而5/9則計算爲0 - 在除法之前先進行乘法運算。 –