关于shell:bash中$ x,$ [x],$ {x}之间的差异

Difference between $x, $[x], ${x} in bash

本问题已经有最佳答案,请猛点这里访问。

当我测试脚本时,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash

num1=100
num2=100


if test $num1 -eq $num2  # there is no difference using $num1 ,$[num1] and ${num1}
then
    echo"equal"    
else
    echo"not equal"    
fi

我知道如果我们回送变量,我们应该用{}来定义外围,但是[]呢?[]{}有什么区别吗?


$x${x}有相同的语义,括号是不需要,但他们可能是方便当你需要从一个字符串变量分离的以下信息:

1
2
var=program
echo"${var}s"  # $vars wouldn't work

$[x]是旧的方式$((x))IU在写作,算术结果的表达。

1
2
3
x=3
y=2
echo $(( x + y ))  # 5

更多的细节,我为什么要使用[湖]美元美元(而不是表达(表达)?。。。。。。。