Strict Mode Set EUO Pipefail Trap

Harden shell scripts with set -euo pipefail and an ERR trap, converting silent failures into loud, traceable exits.

BashCli Tooling

Code

snippet
#!/usr/bin/env bash
# 严格模式三件套 + 错误陷阱
set -euo pipefail

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

on_error() {
  local exit_code=$?
  local line=${BASH_LINENO[0]:-unknown}
  echo "Error: 脚本在第 ${line} 行失败,退出码 ${exit_code}" >&2
  echo "Error: 执行到此处时的命令:${BASH_COMMAND}" >&2
  exit "${exit_code}"
}
trap on_error ERR

# pipefail 演示:管道中段失败不再被吞掉
count_lines() {
  grep -c '^data:' "$1" || true   # 显式容忍:grep 无匹配返回 1
}

main() {
  local input="${SCRIPT_DIR}/events.log"
  local lines
  lines=$(cat "$input" | wc -l) || return 1
  echo "total lines: ${lines}"
  echo "data lines: $(count_lines "$input")"
}

main "$@"