背景
使用哪种 Shell
Bash 是唯一允许用于可执行文件的 Shell 脚本语言。
可执行文件必须以 #!/bin/bash 开头,并使用最少的标志(Flag)。使用 set 来设置
Shell 选项,以确保通过 bash script_name 调用脚本时不会破坏其功能。
将所有可执行的 Shell 脚本限制为 bash,可以为我们提供一种在所有机器上都已安装的 一致的 Shell 语言。特别是,这意味着通常不需要追求 POSIX 兼容性或避免 “bash 特性(bashisms)”。
上述规则的唯一例外是当你受到编码目标的限制时。例如,某些旧版操作系统或受限的执行 环境可能要求某些脚本使用纯 Bourne shell。
何时使用 Shell
Shell 只应用于小型工具或简单的包装脚本(Wrapper Scripts)。
虽然 Shell 脚本不是一种开发语言,但在 Google 中它被用于编写各种实用工具脚本。 本风格指南更多是对其使用方式的规范,而非建议将其广泛部署。
一些指导原则:
- 如果你主要是调用其他工具且只做相对少量的数据处理,Shell 是可接受的选择。
- 如果性能很重要,请使用 Shell 以外的语言。
- 如果你正在编写超过 100 行的脚本,或者使用了复杂的控制流逻辑,你应该立即 用更结构化的语言重写它。请记住脚本会不断增长。尽早重写你的脚本,以避免日后 更耗时的重写工作。
- 在评估代码复杂度时(例如决定是否切换语言),请考虑除作者以外的人是否能 轻松维护该代码。
Last updated on