fix: 修改

这个提交包含在:
HA
2026-04-26 19:28:55 +08:00
父节点 80d865c45c
当前提交 096b89fc6d

查看文件

@@ -2,7 +2,9 @@
# backup.sh — 打包源目录并通过 SMB / (预留) SFTP 上传到远端
# 同时支持 Linux 与 macOS
set -u
set -o pipefail
# 注意:不开启 set -u —— macOS 自带 bash 3.2,对空位置参数 / 空数组("$@"、${arr[@]}
# 会触发 unbound 报错并静默退出,导致脚本在加载完配置后就停下。
RED='\033[0;31m'
GREEN='\033[0;32m'
@@ -104,15 +106,15 @@ parse_args() {
*) err "未知方式:$1"; usage; exit 1 ;;
esac
# 第一遍只取 --config,使后续参数能覆盖配置
local i=1
local argv=("$@")
while [[ $i -le ${#argv[@]} ]]; do
local cur="${argv[$((i-1))]}"
if [[ "$cur" == "-C" || "$cur" == "--config" ]]; then
CONF_FILE="${argv[$i]}"
# 第一遍只取 --config / -C,使后续参数能覆盖配置
# 使用 for 循环 + prev 变量,兼容 bash 3.2(避免数组索引在 set -u 下出问题)
local prev=""
local arg
for arg in "$@"; do
if [[ "$prev" == "-C" || "$prev" == "--config" ]]; then
CONF_FILE="$arg"
fi
i=$((i+1))
prev="$arg"
done
load_conf
@@ -182,7 +184,7 @@ create_archive() {
}
cleanup_local() {
if [[ "$CLEAN_LOCAL" == "true" && -n "${ARCHIVE_FILE:-}" && -f "$ARCHIVE_FILE" ]]; then
if [[ "$CLEAN_LOCAL" == "true" && -n "$ARCHIVE_FILE" && -f "$ARCHIVE_FILE" ]]; then
rm -f "$ARCHIVE_FILE" && log "已删除本地归档:$ARCHIVE_FILE"
fi
}