Bash脚本if语句
在Bash脚本中,以下片段有什么区别?
1)使用单个括号:
if [ "$1" = VALUE ] ; then
# code
fi
2)使用双括号:
if [[ "$1" = VALUE ]] ; then
# code
fi
[[]]结构是[]更通用的Bash版本。 这是从ksh88采用的扩展测试命令。
使用[[]]测试结构,而不是可以防止脚本中的许多逻辑错误。 例如,&&,||,<和>运算符在[[]]测试中工作,尽管在[]构造中给出错误。
有关高级Bash脚本指南的更多信息。
在您的片段中,没有任何区别,因为您没有使用任何附加功能。
[
是bash内建的, [[
是关键词]。 查看bash常见问题解答。 请注意:互联网上的大多数bash脚本都是废话(不要与带空格的文件名一起工作,引入隐藏的安全漏洞等),而且bash要比人们想象的要难得多。 如果你想做bash编程,你应该至少研究bash指南和bash陷阱。
使用[[
抑制括号中表达式的正常词分割和路径名扩展]。 它还支持一些附加操作,如模式匹配