🔧

Bash 条件测试

Bash 文件/字符串/数值测试运算符速查。

本地处理 · 不上传

加载工具中…

相关:bash · test · 条件 · shell · 脚本

Bash 条件测试列出字符串、数值与文件判断的测试操作符,并区分单方括号与双方括号的差异。条件判断的坑主要集中在引号与空格上。

使用步骤

  1. 先分清要测的是文件、字符串还是数值
  2. 找到对应的运算符,数值比较用 -eq 而不是 ==
  3. 在 [[ ]] 里书写,比 [ ] 更宽松也更安全
  4. 变量记得加引号,为空时才不会让条件语法崩掉

使用场景

  • 编写 shell 脚本的条件判断
  • 确认操作符的正确写法
  • 排查条件判断失效
  • 理解单双方括号的区别

小贴士

  • 方括号两侧必须有空格,`[$a = $b]` 会报错,因为 `[` 实际上是一个命令。
  • 变量应当用双引号包裹。变量为空时不加引号会导致条件语法错误,含空格时会被拆成多个参数。
  • 双方括号是 Bash 扩展,支持模式匹配与更安全的变量展开,写 Bash 脚本时优先用它。

常见问题

为什么条件判断报语法错误?

最常见的两个原因:方括号内侧缺少空格(`[` 是命令,必须与参数分开),或者变量未加引号且值为空,导致表达式缺少操作数。双引号包裹变量能解决后者。

单方括号和双方括号用哪个?

写 Bash 脚本用双方括号,它支持正则与模式匹配、不会因变量含空格而分词、逻辑运算符也更直观。需要兼容 POSIX sh 时才用单方括号。

字符串和数字比较有什么区别?

字符串用 = 和 !=,数字用 -eq、-ne、-lt、-gt。用错会得到意外结果——字符串比较下 "10" 小于 "9",因为是逐字符比较的。

Bash 条件测试是免费的吗?

是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。

使用Bash 条件测试,我的数据安全吗?

安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。