最近我一直在使用一些bash腳本,並一直在查看手冊頁。從我所蒐集的,$(())
的意思是expr
和[ ]
的意思是test
?
對於$(())
:
echo $((5 + 3))
具有相同的輸出爲:
echo $(expr 5 + 3)
對於[ ]
:
test 'str' = 'str'
具有相同的成功值爲:
[ 'str' = 'str' ]
我的理解是否正確?
最近我一直在使用一些bash腳本,並一直在查看手冊頁。從我所蒐集的,$(())
的意思是expr
和[ ]
的意思是test
?
對於$(())
:
echo $((5 + 3))
具有相同的輸出爲:
echo $(expr 5 + 3)
對於[ ]
:
test 'str' = 'str'
具有相同的成功值爲:
[ 'str' = 'str' ]
我的理解是否正確?
((...))
構造相當於bash內建let
。 let
大部分是expr
所做的。
$((...))
構造,注意$
開始時,會像$(...)
那樣替換內部表達式的輸出做。
[...]
構造實際上只是test
的另一個名稱。
請參閱bash幫助頁面以獲取更多信息。
help "("
help let
help [
help test
還看到:
非常感謝!併爲鏈接呢!他們真的很有用:) – Vern
你是正確的約[ ]
和test
關於$(())
,這是一個更復雜的更換expr
。您可以計算比expr
更復雜的表達式。
您也可以考慮[[]],它允許您進行模式匹配(其他事情)。 Single []是Bourne shell語法。 – cdarke
感謝您的領導!我已經知道你們都提供了各種幫助!乾杯! – Vern
'$(())'不是雙擊,它是符合POSIX標準的語法。 'expr'是20世紀70年代的古董。 –