From e3d39a8dfa24c96d4eee498f9acdcce808bc5cb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Thu, 4 Sep 2025 17:13:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(h-hosts-docker):=20=E6=B7=BB=E5=8A=A0=20JSO?= =?UTF-8?q?N=20=E6=96=87=E4=BB=B6=E9=AA=8C=E8=AF=81=E5=B9=B6=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在脚本开始时验证 DAEMON_FILE 是否为有效的 JSON 文件 - 如果 JSON 无效,重新创建为空的 JSON 对象 - 添加备份当前配置文件的步骤,以防止意外覆盖 --- h-hosts-docker.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/h-hosts-docker.sh b/h-hosts-docker.sh index 56c8217..5835576 100644 --- a/h-hosts-docker.sh +++ b/h-hosts-docker.sh @@ -50,6 +50,12 @@ if [ ! -f "$DAEMON_FILE" ] || [ ! -s "$DAEMON_FILE" ]; then echo "🔔 提示: '$DAEMON_FILE' 文件不存在或为空,已为你创建。" fi +# 验证 JSON 文件格式,如果无效则重新创建 +if ! jq empty "$DAEMON_FILE" 2>/dev/null; then + echo "⚠️ 警告: '$DAEMON_FILE' 包含无效的 JSON,正在重新创建..." + echo "{}" > "$DAEMON_FILE" +fi + # 2. 备份当前配置文件 BACKUP_FILE="$DAEMON_FILE.bak-$(date +%Y%m%d_%H%M%S)" cp "$DAEMON_FILE" "$BACKUP_FILE"