Shell脚本编写规范核心是稳定、协作与可维护,需统一Shebang、结构化头部、见名知意的命名、规范缩进与空格、英文注释及正确权限设置。

规范 Shell 脚本编写格式,核心是让脚本能稳定运行、便于协作和长期维护。重点不在“多复杂”,而在“一致、清晰、可预期”。
脚本开头必须有 Shebang 行
第一行必须明确指定解释器,例如:
-
#!/bin/bash—— 推荐用于功能较全的脚本(支持数组、高级条件判断等) -
#!/bin/sh—— 更轻量、更兼容,适合简单、跨平台场景(POSIX 兼容)
注意:路径必须是绝对路径;该行不能加空格或注释;它只在用 ./script.sh 方式执行时生效。
结构化头部信息建议包含
紧随 Shebang 后,用英文注释说明关键元信息,方便他人快速理解用途与背景:
-
# Date: 2026-07-29—— 创建或最后修改日期 -
# Author: yourname—— 维护者标识 -
# Function: backup nginx config daily—— 一句话说明功能 -
# Version: 1.2—— 版本号,便于追踪变更 -
# Usage: ./backup-nginx.sh [target_dir]—— 简要使用方式(如有参数)
这些不是强制要求,但团队协作中能显著降低沟通成本。
命名与存放位置要明确
文件名应见名知意,全部小写,单词间用短横线分隔,并以 .sh 结尾:
- ✅ 推荐:
deploy-app-v2.sh、check-disk-usage.sh - ❌ 避免:
1.sh、脚本.sh、MyScript.SH
建议统一存放在固定目录,如 /server/scripts/ 或 ~/bin/,避免散落在各处。
代码书写细节决定可读性
缩进、空格、括号写法直接影响排查效率:
- 用 2 或 4 个空格缩进(不要用 Tab),
if、for、while块内命令统一缩进 -
[ ]和[[ ]]两侧必须有空格,例如:if [ -f "$file" ]; then - 变量赋值时等号两边不加空格:
count=0,引用时推荐用${count}防歧义 - 成对符号(
{}、""、''、$(...))先写全再填内容,避免遗漏 - 注释用英文,避免中文乱码风险;若必须用中文,请确保脚本开头显式设置:
export LANG=C.UTF-8
权限与执行方式要匹配
脚本写完后,需赋予执行权限才能用 ./xxx.sh 运行:
chmod +x deploy-app-v2.sh- 也可跳过授权,直接调用解释器:
bash deploy-app-v2.sh或sh deploy-app-v2.sh
注意:两种方式使用的解释器可能不同——前者看 Shebang,后者看命令指定,务必保持一致,否则行为可能出错。


















