阅界食谱今天吃什么,先来这里看看
代码片段

Shell 脚本安全开头

写脚本时开头加上这几行,出错就停、不留坑。

模板正文

#!/usr/bin/env bash
set -euo pipefail
# -e 出错立即退出
# -u 用到未定义变量就报错
# -o pipefail 管道中任意一步失败即失败

IFS=$'\n\t'                     # 避免文件名里的空格把循环拆断

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"

log() { printf '[%s] %s\n' "$(date '+%H:%M:%S')" "$*"; }

log "开始执行"
# 你的逻辑
log "执行完成"

怎么用

任何新写的 .sh 文件都建议这么开头。

使用要点

  • 没有 set -e 的脚本,中间失败了还会继续跑,容易产生脏数据。
  • 路径一律用绝对路径或 SCRIPT_DIR,不要依赖执行时的工作目录。

同类模板

Shell 脚本安全开头 · 阅界食谱