From 64ddc8698fe5526f723131403626ce9eca53ffd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Thu, 4 Sep 2025 17:09:15 +0800 Subject: [PATCH] =?UTF-8?q?refactor(h-hosts-docker.sh):=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E5=92=8C=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将备份文件名存储在变量中,避免重复生成 - 使用变量引用备份文件,提高代码可读性和维护性 - 优化 echo 输出,直接使用变量引用备份文件名 --- h-hosts-docker.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 "✅ 配置未发生变化,所有条目均已存在。"