[ 不是“符号” 而是可执行程序


[ 不是“符号”,而是 实实在在的可执行程序——路径通常是 /usr/bin/[(bash 里还有同名内建版)。

名字就叫 “test”,只是换了个马甲:硬链接或同源码编译出来的另一个文件。


语法
  [ expression ] 等价于 test expression
注意:
  右中括号 ] 只是参数,告诉 “[” 表达式到此结束;因此前后必须有空格。
  返回值:表达式为真 → exit 0;为假 → exit 1;语法错 → exit 2。
  支持字符串、数值、文件三类测试,与 test 完全一致。

与 [[ 的区别
  [[ 是 Bash/Ksh 关键字,语法更宽松(支持通配符、正则、&& || 内部短路),而 [ 是命令,所有 Shell 通用。
  因此写可移植脚本优先用 [,写 Bash 专用脚本可用 [[ 图方便。

一句话总结:
  “[ 就是换了个名字的 test 命令,右中括号只是‘结束符’,别漏空格。”

posted @ 2026-01-14 10:11  山河水  阅读(0)  评论(0)    收藏  举报