我刚刚习惯了shell脚本编写,并且遇到了一些我不太确定如何使用Google的内容。
在我阅读的教程中,它表明编写if语句的正确方法是这样的:
if [ $a == $b ]; then
echo "a == b"
fi
Run Code Online (Sandbox Code Playgroud)
但是我在我们的代码库中看到省略了半冒号的地方:
if [ $a == $b ] then
echo "a == b"
fi
Run Code Online (Sandbox Code Playgroud)
我也看过双方括号:
if [[ $a == $b ]]; then
echo "a == b"
fi
Run Code Online (Sandbox Code Playgroud)
当我在bash中测试了所有这些功能后,似乎没有什么区别。有区别吗?它与兼容性有关吗?正确的风格是什么?
if [ $a == $b ]; then
echo "a == b"
fi
Run Code Online (Sandbox Code Playgroud)
您可以使用分号,也可以then单独写一行。允许任何一个。
if [ $a == $b ]
then
echo "a == b"
fi
Run Code Online (Sandbox Code Playgroud)
既;没有换行也不是语法错误。
$ if [ $a == $b ] then
> echo "a == b"
> fi
bash: syntax error near unexpected token `fi'
Run Code Online (Sandbox Code Playgroud)
至于[vs [[,请参阅: