Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash:'$(())和#x27;指';expr';和';[]和#x27;指';测试';?_Linux_Bash - Fatal编程技术网

Linux Bash:'$(())和#x27;指';expr';和';[]和#x27;指';测试';?

Linux Bash:'$(())和#x27;指';expr';和';[]和#x27;指';测试';?,linux,bash,Linux,Bash,我最近一直在使用一些bash脚本,并且一直在浏览手册页。从我收集的资料来看,$(())是否意味着expr和[]是否意味着test 对于$(()): 具有与以下相同的输出: echo $(expr 5 + 3) 对于[]: test 'str' = 'str' 具有与以下相同的成功价值: [ 'str' = 'str' ] 我的理解正确吗?这个(…)构造相当于bash内置的letlet做的事情与expr做的事情基本相同 $(…)构造,请注意开头的$,将替换内部表达式的输出,就像$(…)一样

我最近一直在使用一些bash脚本,并且一直在浏览手册页。从我收集的资料来看,
$(())
是否意味着
expr
[]
是否意味着
test

对于
$(())

具有与以下相同的输出:

echo $(expr 5 + 3)
对于
[]

test 'str' = 'str'
具有与以下相同的成功价值:

[ 'str' = 'str' ]
我的理解正确吗?

这个
(…)
构造相当于bash内置的
let
let
做的事情与
expr
做的事情基本相同

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

[…]
构造实际上只是
测试的另一个名称

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

  • help”(“
  • help-let
  • 帮助[
  • 帮助测试
另见:


    • 关于
      []
      测试


      <>关于<代码> $(())< /代码>,这是一个更详细的替换<代码> EXPR。您可以计算更复杂的表达式,而不是使用<代码> EXPR。

      您也可以考虑[[]],它允许您进行模式匹配(其他事情)。这是Bourne shell语法。感谢大家的提醒!我已经用你们提供的所有帮助解决了它!干杯!
      $(())
      不是bashism,它是符合POSIX本机标准的语法。
      expr
      是70年代的古董。非常感谢!还有链接!它们真的很有用:)
      [ 'str' = 'str' ]