我有这个 Jenkins 管道:
sh """ docker container run \
--name ssapi-eks-deployer \
-e BRANCH=delete\
-e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID \
-e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY \
-e ACTION=${params.ACTION} \
-e API_VERSION=${params.API_VERSION} \
http://docker.image """
此 docker 映像运行具有此选项的脚本:
if [[ $ACTION == "DEPLOY" ]]; then
echo "=========Deploying EKS ========="
terraform apply -auto-approve -var-file=project.tfvars -var='apiversion={"$ENV"="$API_VERSION"}'
问题是这个脚本的结果是这样的:
terraform apply -auto-approve -var-file=project.tfvars -var='apiversion={pre=1.0}'
预期的结果是这样的:
terraform apply -auto-approve -var-file=project.tfvars -var='apiversion={"pre"="1.0"}'
我试图用 "" 并使用双双引号转义,但没有成功.. 知道吗?
谢谢
答案 0 :(得分:0)
您需要使用 \
:
对其进行转义
示例:
bat "terraform apply -auto-approve -var-file=project.tfvars -var='apiversion= {\"${ENV}\"= \"${API_VERSION}\"} ' "