gpt4 book ai didi

Terraform 转义序列

转载 作者:行者123 更新时间:2023-12-02 16:11:00 27 4
gpt4 key购买 nike

我在我的 ec2 上使用我的 terraform 文件中的 remote-exec provisioner 运行一些命令。但我坚持在命令中转义特殊字符。此代码部分来 self 在 remote-exec provisioner 部分中的 main.tf 文件。 terraform 中出现的错误是“无效字符”和“无效多行字符串”。我想要正确的字符串序列,以便这些命令可以在我的 ec2 上执行。

"VAR=$(cat contents.txt | grep '"token"'),
"VAR="${VAR:11}"",
"VAR="${VAR:0:-1}"",

最佳答案

${ 也被 terraform 解释(作为变量替换)。您需要使用 $ 转义那些成为 $${

一个完整的工作示例:

主.tf:

resource "null_resource" "test" {
provisioner "local-exec" {
command = <<EOF
echo 'some11char hello "token"' > contents.txt

VAR=$(cat contents.txt | grep \"token\")
VAR=$${VAR:11}
VAR=$${VAR:0:5}

echo $VAR >log
EOF
}
}
$ terraform apply -input=false -auto-approve 
null_resource.test: Creating...
null_resource.test: Provisioning with 'local-exec'...
null_resource.test (local-exec): Executing: ["/bin/sh" "-c" "echo 'some11char hello \"token\"' > contents.txt\n\nVAR=$(cat contents.txt | grep \\\"token\\\")\nVAR=${VAR:11}\nVAR=${VAR:0:5}\n\necho $VAR >log\n"]
null_resource.test: Creation complete after 0s [id=3425651808766026549]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
$ cat contents.txt 
some11char hello "token"

$ cat log
hello

$

关于Terraform 转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68037905/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com