From 5bc9bd7fb3ffc97901374836588d09d936bd1242 Mon Sep 17 00:00:00 2001 From: Mikhail Chusavitin Date: Fri, 8 May 2026 11:58:15 +0300 Subject: [PATCH] Fix deploy.sh unbound variable on line 51 \\$1 in a double-quoted string expands as literal backslash + $1 (the script's first positional arg). With set -u and no CLI args (IP entered via read), this fails. \$1 correctly escapes the dollar sign, producing a literal $1 for awk on the remote host. Co-Authored-By: Claude Sonnet 4.6 --- scripts/deploy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/deploy.sh b/scripts/deploy.sh index a551d7b..9f8a5b1 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -48,7 +48,7 @@ echo "==> Сборка бинарника..." echo " OK: $(ls -lh "${LOCAL_BIN}" | awk '{print $5, $9}')" LOCAL_SHA="$(shasum -a 256 "${LOCAL_BIN}" | awk '{print $1}')" -REMOTE_SHA="$("${SSH_CMD[@]}" "$REMOTE" "if [ -f '${REMOTE_BIN}' ] && command -v sha256sum >/dev/null 2>&1; then sha256sum '${REMOTE_BIN}' | awk '{print \\$1}'; fi" 2>/dev/null || true)" +REMOTE_SHA="$("${SSH_CMD[@]}" "$REMOTE" "if [ -f '${REMOTE_BIN}' ] && command -v sha256sum >/dev/null 2>&1; then sha256sum '${REMOTE_BIN}' | awk '{print \$1}'; fi" 2>/dev/null || true)" if [[ -n "${REMOTE_SHA}" && "${LOCAL_SHA}" == "${REMOTE_SHA}" ]]; then echo "==> Бинарник не изменился (${LOCAL_SHA}); копирование и перезапуск сервисов пропущены." exit 0