Bash比较 - 运算符[..]和[[...]]以及((...))之间的混淆

时间:2013-12-04 06:06:54

标签: linux bash shell

我看到人们用不同格式的条件语句编写他们的bash脚本。 例如,这里有几个例子:

x=20;
if [ "$x" -eq "20" ];
then
 echo "1. yes!";
fi
if [[ "$x" -eq "20" ]];
then
 echo "2. yes!";
fi
if (( "$x" == "20" ));
then
 echo "3. yes!";
fi

上面的代码在bash shell中将这三个都称为YES。

显然,我在使用这些语法时看到了各种不同,例如当我需要复合逻辑语句(使用诸如&& ||之类的东西)或字符串/数字比较时。

除此之外,即使是变量访问似乎也存在差异$ x $((x))$ {x}等。

有人可以澄清上述每种语法的重要性并揭开我的思想神秘面纱吗?

0 个答案:

没有答案