Skip to content

Bash 速查表

1. Bash set 选项

选项 说明
-e 在有错误时退出
-n 读一遍脚本中的命令但不执行,用于检查脚本中的语法错误
-v 一边执行脚本,一边将执行过的脚本命令打印到标准错误输出
-x 提供跟踪执行信息,将执行的每一条命令和结果依次打印出来

2. 条件判断

2.1. 字符串

条件 说明
[[ -z "$STR" ]] 字符串为空
[[ -n "$STR" ]] 字符串非空
[[ "$STR1" == "$STR2" ]] 字符串相等
[[ "$STR1" != "$STR2" ]] 字符串不相等
[[ "$STR1" == *"$STR2"* ]] 字符串包含子字符串

2.2. 数字

条件 说明
[[ NUM1 -eq NUM2 ]] NUM1 等于 NUM2
[[ NUM1 -ne NUM2 ]] NUM1 不等于 NUM2
[[ NUM1 -lt NUM2 ]] NUM1 小于 NUM2
[[ NUM1 -le NUM2 ]] NUM1 小于等于 NUM2
[[ NUM1 -gt NUM2 ]] NUM1 大于 NUM2
[[ NUM1 -ge NUM2 ]] NUM1 大于等于 NUM2

2.3. 文件

条件 说明
[[ -f FILE ]] 文件存在
[[ -d FILE ]] 目录存在
[[ -e FILE ]] 文件或目录存在
[[ -h FILE ]] 文件是符号链接
[[ -r FILE ]] 文件可读
[[ -w FILE ]] 文件可写
[[ -x FILE ]] 文件可执行
[[ -s FILE ]] 文件尺寸大于 0

3. 位置参数

变量 说明
$@ 所有位置参数,每个参数作为独立的参数传递。
$* 所有位置参数合并为一个单词,由 IFS 的第一个字符分隔(通常为空格)。
$# 位置参数数量

4. 退出状态码

常见的退出状态码:

退出状态码 说明
0 成功
126 找到命令但不可执行
127 没有找到该命令
128+N 被编号为 N 的信号终止

退出状态码的取值范围是 0-255。0 表示命令执行成功,非 0 表示命令执行失败或出现异常。

exit 返回超过 0-255 范围的数字是错误的。负值实际会返回 256 + 负值,大于 255 的值实际会返回该值 % 256。