fix: 修改
这个提交包含在:
@@ -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
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户