Terraform中如何为file()函数转义Windows路径?
Terraform file()函数路径报错解决办法
先补全路径的引号!
你贴的代码里file()的路径参数没加引号,Terraform会把C:\Users里的\U当成转义序列,直接触发‘f’这类无效转义的报错,这是核心问题。Windows路径的三种正确写法
给路径加上引号后,用以下任意一种写法都能正常工作:- 正斜杠(最省心):Windows系统本身支持正斜杠当路径分隔符,Terraform也能直接识别:
setup_script = file("C:/Users/me/folder/file.sh") - 双反斜杠转义:在引号内部用双反斜杠代表单个反斜杠,避免被解析成转义序列:
setup_script = file("C:\\Users\\me\\folder\\file.sh") - 原始字符串包裹(Terraform 0.12及以上可用):用三个双引号
"""把路径包起来,内部反斜杠不用转义:setup_script = file("""C:\Users\me\folder\file.sh""")
- 正斜杠(最省心):Windows系统本身支持正斜杠当路径分隔符,Terraform也能直接识别:
为啥之前的尝试没用?
你试的单转义、正斜杠、双转义本身没问题,但没给路径加引号的话,Terraform根本不会把它当成字符串处理,自然报错。补全引号后再用上面的写法,就能解决找不到路径和转义序列的问题。
内容的提问来源于stack exchange,提问作者Russ C
相关产品推荐
相关产品推荐

