자동 견적 매개변수 확장을 위한 bash 모드가 있나요?

자동 견적 매개변수 확장을 위한 bash 모드가 있나요?

다음과 같은 스크립트가 있습니다 render.sh.

#!/usr/bin/env bash

if [[ -f "${ENVIRONMENT}.yaml" ]]; then
  ENV_YAML="-f ${ENVIRONMENT}.yaml"
fi

set -x
helm3 template "$SERVICE_NAME" . --namespace="$NAMESPACE" \
  ${ENV_YAML:-} \
  --set environment="$ENVIRONMENT"

더 큰 스크립트에서 두 번 발생합니다.

SERVICE_NAME=a
NAMESPACE=b
ENVIRONMENT=foo
source render.sh

# other code

SERVICE_NAME=a
NAMESPACE=b
ENVIRONMENT=bar
source render.sh

출력은 다음과 같습니다.

++ helm3 template a . --namespace=b -f foo.yaml --set environment=foo
...
++ helm3 template a . --namespace=b '-f bar.yaml' --set environment=bar

두 번째 실행에서는 따옴표가 추가됩니다. Bash에는 ${VAR@Q}and 와 같은 따옴표를 자동으로 추가하는 몇 가지 방법이 있다는 것을 알고 있지만 "$@"그 중 아무 것도 사용되지 않는 것 같습니다.

매개변수 확장 중에 자동으로 따옴표를 추가하는 모드가 bash에 있습니까?

관련 정보