[英]How to escape windows paths for the file() in Terraform
如果我转义反斜杠并告知“f”不是有效的转义序列选择器,我会收到错误消息,指出无法在 C:\file\dir\location 找到文件。
setup_script = file(C:\\Users\\me\\folder\\file.sh
我试过 escaping (\)、正斜杠 (/)、双重转义 (\)。
您的问题中显示的表达式在更多方面无效,而不仅仅是文件名:文件名不在引号中,并且file
function 调用的右括号)
丢失。
Terraform 模块通常不应在其中包含硬编码的绝对路径,因为这使它们只能在一台特定计算机上工作,但如果您确实想编写绝对路径,那么典型的方法是使用正斜杠:
setup_script = "c:/Users/me/folder/file.sh"
您也可以使用具有相同含义的转义反斜杠\\
来编写它,但这不是那么可读,因此正斜杠是通常的约定。
模块更常见的是通过与path.module
连接来引用其自己目录中的文件:
setup_script = "${path.module}/file.sh"
如果这样做,则必须使用正斜杠,因为path.module
结果也将使用正斜杠,而 Windows 要求整个路径在使用反斜杠还是正斜杠方面保持一致。 请注意,上面的path.module
示例也是可移植的:此结果在 Unix 系统上也有效,因为 Terraform 将为path.module
生成一个 Unix 兼容的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.