請告訴我,是否需要使用「expr」關鍵字。在shell腳本中處理算術表達式
EG: -
echo `expr a*b`
;當我們可以簡單地處理使用簡單的算術運算符的算術表達式。
EG: -
echo a*b
在此先感謝。
請告訴我,是否需要使用「expr」關鍵字。在shell腳本中處理算術表達式
EG: -
echo `expr a*b`
;當我們可以簡單地處理使用簡單的算術運算符的算術表達式。
EG: -
echo a*b
在此先感謝。
第二種形式幾乎肯定不會做你想要的。在bash中,你有一個內置的數字表達式處理程序,但:
A=4; B=6; echo $((A * B))
在POSIX Shell的,你可以在shell時,他們被封閉在
$((...))
所以直接計算表達式:
a=12
b=34
echo $(($a + $b))
雖然這並非總是如此,所有的POSIX彈你很可能會遇到還將處理:
echo $((a + b))
這一切都發生是因爲很久以前,shell沒有做算術運算,所以編寫了外部程序expr
。目前,expr
通常是內建的(除了仍在/ bin中)並且還有Posix $((...))
語法可用。如果$((...))
從第一天開始就沒有,那麼將不存在expr.
shell並不完全是一種正常的計算機語言,也不完全是一個宏處理器:它是一個CLI。它不會執行內聯表達式;未加引號的*
是用於文件名匹配的通配符,因爲CLI需要更頻繁地引用文件而不是執行算術運算。
您可以您正在使用哪個Shell在6
使用
$(())
結果呢arithmatic? –
我正在使用bash shell.Is問題中提到的第一種方法不能用於評估算術表達式? – Adnan
你有沒有嘗試過**? –