Bash 脚本的开头三行
写运维脚本这些年踩过最多的坑是:中间一步失败了,脚本还接着往下跑。现在所有脚本都从这几行开始。
#!/usr/bin/env bash
set -euo pipefail
trap 'echo "失败于第 $LINENO 行" >&2' ERR
-u 能抓住变量名拼错,pipefail 让管道中间的失败不被吞掉。需要容忍失败的命令显式写 || true,读脚本的人也一眼能看出来。
写运维脚本这些年踩过最多的坑是:中间一步失败了,脚本还接着往下跑。现在所有脚本都从这几行开始。
#!/usr/bin/env bash
set -euo pipefail
trap 'echo "失败于第 $LINENO 行" >&2' ERR
-u 能抓住变量名拼错,pipefail 让管道中间的失败不被吞掉。需要容忍失败的命令显式写 || true,读脚本的人也一眼能看出来。