可以显著提升脚本的健壮性和效率
1. set -x
:调试模式(跟踪执行)
在执行命令前打印命令及其参数,帮助调试脚本:
bash
复制代码
2. trap
:优雅处理信号和错误
捕获脚本退出信号(如错误或中断),执行清理操作:
bash
复制代码
3. set -E
:继承陷阱(Error Trap)
让函数也能继承 trap
设置,确保错误处理一致性:
bash
复制代码
4. shopt -s nullglob
:空匹配时返回空字符串
当通配符匹配失败时,不返回原模式而是空字符串:
bash
复制代码
5. shopt -s dotglob
:通配符包含隐藏文件
让 *
等通配符匹配以 .
开头的文件:
bash
复制代码
6. shopt -s expand_aliases
:在脚本中启用别名
默认情况下脚本不展开别名,使用此选项可启用:
bash
复制代码
7. set -m
:作业控制(Monitor Mode)
启用作业控制,允许在后台运行命令并恢复到前台:
bash
复制代码
8. export IFS=$'\n\t '
:自定义字段分隔符
修改内部字段分隔符(IFS)以安全处理包含空格的文件名:
bash
复制代码
9. command -v
:安全检查命令是否存在
检查命令是否存在,避免因命令不存在导致的错误:
bash
复制代码
10. printf %q
:安全引用变量
将变量内容转换为可安全用于 Shell 的格式:
bash
复制代码
11. local
:函数内局部变量
在函数内部使用 local
声明局部变量,避免污染全局环境:
bash
复制代码
12. set -o functrace
:跟踪函数调用
启用函数调用跟踪,结合 trap
可实现函数进入 / 退出日志:
bash
复制代码
13. [[ ... ]]
:高级条件判断
双括号条件判断支持更丰富的表达式,如正则匹配:
bash
复制代码
14. ( command )
:子 Shell 执行
在子 Shell 中执行命令,避免影响当前环境:
bash
复制代码
15. { command1; command2; }
:命令组
将多个命令组合为一个块,共享环境变量:
bash
复制代码
这些技巧能极大提升 Shell 脚本的健壮性、可读性和可维护性。建议将常用的设置添加到 .bashrc
或 .zshrc
中,让它们在每次启动 Shell 时自动生效。
版权声明: 本文为 InfoQ 作者【Joseph295】的原创文章。
原文链接:【http://xie.infoq.cn/article/69c0012898d4dfdbfc3c76a86】。文章转载请联系作者。
评论