Shell 编程基础知识总结
Shell 既是命令解释器,也是把程序组合成数据流的脚本语言。执行前会经历变量、命令替换、通配符和字段分割等展开,因此引用规则直接决定参数边界。除非明确需要分词,变量通常应写成 "$value"。
管道把前一进程的标准输出连接到后一进程的标准输入;重定向则把输入输出连接到文件或描述符。管道传递字节流,不自动保存记录结构。每个命令返回退出状态,0 通常表示成功,脚本应显式检查失败,而不是只看是否打印错误。
1 | set -eu |
条件判断要区分字符串、整数与文件测试;循环遍历参数应使用 "$@" 保留每个参数边界。函数可复用逻辑,但复杂数据结构、并发控制和跨平台需求增长时,应考虑 Python 等更合适语言。临时文件需安全创建并用 trap 清理。
Shell 的性能通常受启动外部进程与 I/O 影响,大量逐行调用工具可能很慢,可让单个工具批量处理。安全上避免拼接后 eval,不要把不可信文本当命令,路径和文件名不能假设没有空格或换行。
误区包括未引用变量、依赖当前目录、忽略管道中前段失败、把文本输出当稳定 API,以及在密码参数中暴露秘密。小结:可靠脚本的核心是保持参数边界、传播退出状态、清理资源并限制输入解释。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dai Wei!
评论

