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