次のスクリプトがあります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"
大きなスクリプトで2回発生します。
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
2番目の実行では、引用符が追加されます。 Bashには、${VAR@Q}
andなどの引用符を自動的に追加するいくつかの方法があることを知っていますが、"$@"
そのうち何も使用されていないようです。
パラメータ拡張中に自動的に引用符を追加するモードはbashにありますか?