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