diff --git a/scripts/backup-scheduler.sh b/scripts/backup-scheduler.sh index bdb168d..a803761 100755 --- a/scripts/backup-scheduler.sh +++ b/scripts/backup-scheduler.sh @@ -35,11 +35,13 @@ run_job() { write_job_state "${status_dir}" "${type}" success '执行成功' "${SCRIPT_DIR}/backup-status.sh" write || true return + else + # 必须在失败分支中立即读取退出码;if 语句本身在无 else 时会返回 0。 + local code=$? + write_job_state "${status_dir}" "${type}" failed "执行失败(退出码 ${code})" + "${SCRIPT_DIR}/backup-status.sh" write || true + return "${code}" fi - local code=$? - write_job_state "${status_dir}" "${type}" failed "执行失败(退出码 ${code})" - "${SCRIPT_DIR}/backup-status.sh" write || true - return "${code}" } main() {