refactor(h-hosts-docker.sh): 优化配置文件备份和引用

- 将备份文件名存储在变量中,避免重复生成
- 使用变量引用备份文件,提高代码可读性和维护性
- 优化 echo 输出,直接使用变量引用备份文件名
This commit is contained in:
严浩
2025-09-04 17:09:15 +08:00
parent 32f1716262
commit 64ddc8698f

View File

@@ -51,8 +51,9 @@ if [ ! -f "$DAEMON_FILE" ] || [ ! -s "$DAEMON_FILE" ]; then
fi
# 2. 备份当前配置文件
cp "$DAEMON_FILE" "$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)"
echo "📄 已将当前配置备份到 '$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)'"
BACKUP_FILE="$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)"
cp "$DAEMON_FILE" "$BACKUP_FILE"
echo "📄 已将当前配置备份到 '$BACKUP_FILE'"
# 3. 将所有命令行参数转换为 jq 可以使用的 JSON 数组
# 例如: "host1:ip1" "host2:ip2" -> '["host1:ip1", "host2:ip2"]'
@@ -67,14 +68,14 @@ hosts_to_add_json=$(jq -n '$ARGS.positional' --args "$@")
updated_json=$(jq \
--argjson hosts_to_add "$hosts_to_add_json" \
'.add_host = ((.add_host // []) + $hosts_to_add | unique | del(select(.==null)))' \
"$DAEMON_FILE.bak")
"$BACKUP_FILE")
# 5. 将格式化后的 JSON 写回主文件
echo "$updated_json" > "$DAEMON_FILE"
# 6. 显示修改前后的差异
echo "🔄 检查文件变更:"
diff -u "$DAEMON_FILE.bak" "$DAEMON_FILE"
diff -u "$BACKUP_FILE" "$DAEMON_FILE"
if [ $? -eq 0 ]; then
echo "✅ 配置未发生变化,所有条目均已存在。"