diff --git a/h-hosts-docker.sh b/h-hosts-docker.sh index aac1826..0aa4996 100644 --- a/h-hosts-docker.sh +++ b/h-hosts-docker.sh @@ -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 "✅ 配置未发生变化,所有条目均已存在。"