Bash 脚本自动化日常工作流:5 个立刻能用的实践

Bash 脚本自动化日常工作流:5 个立刻能用的实践

前言

很多「自动化」需求,一张 cron 加一个几十行的 bash 脚本就够了。相比引入完整的工作流引擎,bash 的优势是:零依赖、到处都能跑、看得懂。

实践1:把长命令收进一个脚本

把所有重复的复合命令固化到 scripts/ 目录,配一个 --help 说明用法。

#!/usr/bin/env bash
set -euo pipefail
usage() { echo "usage: $0 <target>"; exit 1; }
[[ $# -ge 1 ]] || usage

实践2:输出即报告

让脚本在结尾打印关键指标,一行摘要就能让人立刻知道发生了什么:

echo "bounty数量: ${COUNT:-0}"
echo "状态: $STATUS"

实践3:日志轮转,不要让日志吃满磁盘

LOG="/var/log/money.log"
{
  echo "=== $(date) ==="
  cat /tmp/report.txt
} >> "$LOG"
tail -n 1000 "$LOG" > "$LOG.tmp" && mv "$LOG.tmp" "$LOG"

实践4:失败要有兜底

网络请求加重试,命令加 || echo "跳过"。脚本一失败就中断整条流水线,是最常见的问题。

实践5:写日志文件,也写人话结论

纯日志给机器看,结论给人和 agent 看。两者都要有。

常见坑

  • 忘了 set -euo pipefail,错误被静默吞掉
  • 用 rm -rf 处理临时文件 → 改用 mktemp -d 并在退出时清理
  • 脚本里硬编码路径 → 用变量或环境变量

总结

先写一个 20 行、能跑通的 bash 脚本,再考虑上工作流引擎。过早引入复杂工具是自动化最大的成本。


生成时间:2026-11-08 14:00:41
标签:bash, automation, productivity