在 Dhall 的多行字符串中转义字符串插值
Escaping string interpolation in Dhall's multi-line strings
例如,我将如何转义以下字符串中的插值?
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}"
,但这似乎不适用于多行字符串。
谢谢。
您可以在 multi-line 字符串文字中转义 ${
,方法是在其前面加上 ''
,如下所示:
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
例如,我将如何转义以下字符串中的插值?
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}"
,但这似乎不适用于多行字符串。
谢谢。
您可以在 multi-line 字符串文字中转义 ${
,方法是在其前面加上 ''
,如下所示:
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