我最近一直在使用一些bash脚本,并一直在浏览手册页。根据我收集的内容,$(( ))
表示expr
和[ ]
表示test
?
$(( ))
:
echo $(( 5 + 3 ))
的输出与:
相同echo $(expr 5 + 3)
[ ]
:
test 'str' = 'str'
具有与以下相同的成功价值:
[ 'str' = 'str' ]
我的理解是否正确?
答案 0 :(得分:9)
((...))
构造等同于bash内置let
。 let
与expr
完成的工作大致相同。
$((...))
构造,请注意开头的$
,将像$(...)
那样替换表达式的输出。
[...]
构造实际上只是test
的另一个名称。
有关详细信息,请参阅bash帮助页面。
help "("
help let
help [
help test
另见:
答案 1 :(得分:6)
您对[ ]
和test
关于$(( ))
,这是expr
的更精细的替代品。您可以使用expr
来计算更复杂的表达式。