有些 CI 脚本用了管道,前面的命令失败时,最后一个命令仍可能返回 0,结果把失败步骤误判成成功。脚本开头可以写:
#!/usr/bin/env bash
set -Eeuo pipefail
make build | tee build.log
pipefail 会让管道返回最左侧的失败状态,-e 让未处理的失败退出,-u 则能尽早发现未定义变量。环境:Bash 4+。如果某一步允许失败,最好局部处理返回值,不要整段关闭检查;另外带有敏感参数的命令经过 tee 前也要确认日志内容可以落盘。