- 论坛徽章:
- 0
|
本帖最后由 lizhaoyu 于 2013-04-05 19:18 编辑
Shell_HAT 发表于 2013-04-05 16:01 ![]()
打开ABS,看看第81页。
Advanced Bash-Scripting Guide 3.9.1 中文版.pdf
如ABS所说:
使用[[ ... ]]条件判断结构, 而不是[ ... ], 能够防止脚本中的许多逻辑错误. 比如, &&, ||, <, 和> 操作符能够正常存在于[[ ]]条件判断结构中, 但是如果出现在[ ]结构中 的话, 会报错.
操作符 '<' '>'出现在[]中,必须引起来,否则会当成重定向符:- ~ zhaoyuli$[ 1 < 2 ];echo $?
- -bash: 2: No such file or directory
- 1
- ~ zhaoyuli$[ 1 '<' 2 ];echo $?
- 0
复制代码 操作符'&&', '||' 不能出现在[]中,只能连接多个[]判断- ~ zhaoyuli$[ 0 '<' 1 && 1 '=' 1 ];echo $?
- -bash: [: missing `]'
- 2
- ~ zhaoyuli$[ 0 '<' 1 ] && [ 1 '=' 1 ];echo $?
- 0
复制代码 结论: [[]]靠谱很多,[]不用也罢 |
|