提问人:Dim Dim 提问时间:10/19/2023 更新时间:10/19/2023 访问量:91
如何正确转义cloud-init runcmd部分中的特殊字符?
How to properly escape special characters in cloud-init runcmd section?
问:
我正在尝试在“runcmd”块中就地编辑 YAML 文件。在 Bash 中,我的命令按预期工作。在这里:
yq -i '.block1 += {"path": "dir1"} ' /ws1/project.yml
.
但是,它在“runcmd”块中不起作用。当我将此命令包含在 runcmd 块中时,它会完全破坏我的 cloud-init。我无法访问主机,因为我添加 SSH 密钥的用户块不起作用。
你能告诉我如何正确转义特殊字符以确保正确执行cloud-init吗?
但是,更简单的命令(例如)可以正常运行,并且不会中断整个云配置。我尝试了各种方法来转义双引号、大括号、冒号和 dir1 之前的空格,但没有一个成功。yq -i '.block1 += "path" ' /ws1/project.yml
答:
1赞
falcojr
10/19/2023
#1
Runcmd 允许不需要转义的列表语法:
runcmd:
- [yq, -i, '.block1 += {"path": "dir1"} ', /ws1/project.yml]
评论
0赞
Dim Dim
10/19/2023
非常感谢!我会努力的
评论