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。