5

我最近一直在使用一些 bash 脚本,并且一直在查看手册页。从我收集的内容来看,是什么$(( ))意思?expr[ ]test

对于$(( ))

echo $(( 5 + 3 ))

具有与以下相同的输出:

echo $(expr 5 + 3)

对于[ ]

test 'str' = 'str'

具有与以下相同的成功值:

[ 'str' = 'str' ]

我的理解正确吗?

4

2 回答 2

9

((...))构造等效于 bash 内置letlet做大部分相同的事情expr

$((...))构造,请注意$开头的 ,将替换内部表达式的输出,就像做的$(...)那样。

[...]构造实际上只是test.

有关更多信息,请参阅 bash 帮助页面。

  • help "("
  • help let
  • help [
  • help test

也可以看看:

于 2012-05-23T11:09:02.597 回答
6

你是正确[ ]test

关于$(( )),这是一个更精细的替换expr。您可以计算比 with 更复杂的表达式expr

于 2012-05-23T11:09:28.420 回答