다음과 같은 스크립트가 있습니다 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에 있습니까?