For example, how would I escape the interpolation in the following string?
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
With non-multiline strings putting \
in front of the interpolation works, e.g., replacing "Foo ${bar}"
with "Foo \${bar}"
, but this doesn't seem to work with multi-line strings.
Thanks.
You can escape ${
within a multi-line string literal by prefacing it with ''
, like this:
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