[ 不是“符号” 而是可执行程序
[ 不是“符号”,而是 实实在在的可执行程序——路径通常是 /usr/bin/[(bash 里还有同名内建版)。
名字就叫 “test”,只是换了个马甲:硬链接或同源码编译出来的另一个文件。
语法
[ expression ] 等价于 test expression
注意:
右中括号 ] 只是参数,告诉 “[” 表达式到此结束;因此前后必须有空格。
返回值:表达式为真 → exit 0;为假 → exit 1;语法错 → exit 2。
支持字符串、数值、文件三类测试,与 test 完全一致。
与 [[ 的区别
[[ 是 Bash/Ksh 关键字,语法更宽松(支持通配符、正则、&& || 内部短路),而 [ 是命令,所有 Shell 通用。
因此写可移植脚本优先用 [,写 Bash 专用脚本可用 [[ 图方便。
一句话总结:
“[ 就是换了个名字的 test 命令,右中括号只是‘结束符’,别漏空格。”
浙公网安备 33010602011771号