我只是习惯于编写shell脚本,而且我发现了一些我不确定如何google的内容。
在我正在阅读的教程中,它表明编写if语句的正确方法是这样的:
if [ $a == $b ]; then
echo "a == b"
fi
但是我在代号库中看到了省略半冒号的地方:
if [ $a == $b ] then
echo "a == b"
fi
我也见过双方括号:
if [[ $a == $b ]]; then
echo "a == b"
fi
当我在bash中测试所有这些时,似乎并没有什么区别。有区别吗?它与兼容性有关吗?采用的正确方式是什么?
答案 0 :(得分:4)
if [ $a == $b ]; then
echo "a == b"
fi
您可以使用分号,也可以在单独的行上编写then
。任何一个都是允许的。
if [ $a == $b ]
then
echo "a == b"
fi
既没有;
也没有新行是语法错误。
$ if [ $a == $b ] then
> echo "a == b"
> fi
bash: syntax error near unexpected token `fi'
至于[
vs [[
,请参阅: