🔧
Bash 条件测试
Bash 文件/字符串/数值测试运算符速查。
本地处理 · 不上传
加载工具中…
相关:bash · test · 条件 · shell · 脚本
Bash 条件测试列出字符串、数值与文件判断的测试操作符,并区分单方括号与双方括号的差异。条件判断的坑主要集中在引号与空格上。
使用步骤
- 先分清要测的是文件、字符串还是数值
- 找到对应的运算符,数值比较用 -eq 而不是 ==
- 在 [[ ]] 里书写,比 [ ] 更宽松也更安全
- 变量记得加引号,为空时才不会让条件语法崩掉
使用场景
- 编写 shell 脚本的条件判断
- 确认操作符的正确写法
- 排查条件判断失效
- 理解单双方括号的区别
小贴士
- 方括号两侧必须有空格,`[$a = $b]` 会报错,因为 `[` 实际上是一个命令。
- 变量应当用双引号包裹。变量为空时不加引号会导致条件语法错误,含空格时会被拆成多个参数。
- 双方括号是 Bash 扩展,支持模式匹配与更安全的变量展开,写 Bash 脚本时优先用它。
常见问题
为什么条件判断报语法错误?
最常见的两个原因:方括号内侧缺少空格(`[` 是命令,必须与参数分开),或者变量未加引号且值为空,导致表达式缺少操作数。双引号包裹变量能解决后者。
单方括号和双方括号用哪个?
写 Bash 脚本用双方括号,它支持正则与模式匹配、不会因变量含空格而分词、逻辑运算符也更直观。需要兼容 POSIX sh 时才用单方括号。
字符串和数字比较有什么区别?
字符串用 = 和 !=,数字用 -eq、-ne、-lt、-gt。用错会得到意外结果——字符串比较下 "10" 小于 "9",因为是逐字符比较的。
Bash 条件测试是免费的吗?
是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。
使用Bash 条件测试,我的数据安全吗?
安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。