diff --git a/docker-setup.sh b/docker-setup.sh index 0395d20f4..ffbfc1493 100755 --- a/docker-setup.sh +++ b/docker-setup.sh @@ -129,7 +129,7 @@ upsert_env() { local -a keys=("$@") local tmp tmp="$(mktemp)" - declare -A seen=() + local seen_keys="" if [[ -f "$file" ]]; then while IFS= read -r line || [[ -n "$line" ]]; do @@ -138,7 +138,7 @@ upsert_env() { for k in "${keys[@]}"; do if [[ "$key" == "$k" ]]; then printf '%s=%s\n' "$k" "${!k-}" >>"$tmp" - seen["$k"]=1 + seen_keys+="|$k|" replaced=true break fi @@ -150,7 +150,7 @@ upsert_env() { fi for k in "${keys[@]}"; do - if [[ -z "${seen[$k]:-}" ]]; then + if [[ "$seen_keys" != *"|$k|"* ]]; then printf '%s=%s\n' "$k" "${!k-}" >>"$tmp" fi done