例如,如何在以下字符串中转义插值?
let foo =
''
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
docker build -f frontend/Dockerfile-prod \
--build-arg OAUTH_GITHUB_CLIENT_ID=${OAUTH_GITHUB_CLIENT_ID-""} \
--build-arg OAUTH_GITLAB_CLIENT_ID=${OAUTH_GITLAB_CLIENT_ID-""} \
--build-arg OAUTH_GOOGLE_CLIENT_ID=${OAUTH_GOOGLE_CLIENT_ID-""}
''
in foo
使用non-multiline strings putting \
in front of the interpolation works,例如将"Foo ${bar}"
替换为"Foo \${bar}"
,但这似乎不适用于多行字符串。
谢谢。
答案 0 :(得分:2)
您可以通过用${
开头在多行字符串文字中对''
进行转义,如下所示:
let foo =
''
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
docker build -f frontend/Dockerfile-prod \
--build-arg OAUTH_GITHUB_CLIENT_ID=''${OAUTH_GITHUB_CLIENT_ID-""} \
--build-arg OAUTH_GITLAB_CLIENT_ID=''${OAUTH_GITLAB_CLIENT_ID-""} \
--build-arg OAUTH_GOOGLE_CLIENT_ID=''${OAUTH_GOOGLE_CLIENT_ID-""}
''
in foo