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陷阱。


使用[[抑制括号中表达式的正常词分割和路径名扩展]。 它还支持一些附加操作,如模式匹配

链接地址: http://www.djcxy.com/p/97067.html

上一篇: Bash script if statements

下一篇: H with curly brackets