我对YML和Ansible相当陌生,但是我的任务是为我的工作做一些自动化。 我有一个字符串变量,里面需要有双引号和单引号:
-d 'request=("folder":"Testing_it","attributes":{})'
所以我已经快速编写了一个简单的剧本,将检查它是否有效:
- name: Assign variable
set_fact:
params: " -d 'request=(\"folder\":\"Testing_it\",\"attributes\":{})'"
- name: Show output
debug:
msg: "{{ params }}"
我想在继续之前查看变量的外观,这是Ansible的输出:
ok: [localhost] => {
"msg": " -d 'request=(\"folder\":\"Testing_it\",\"attributes\":{})'"
}
为什么反斜杠包含在该变量中?有人可以帮助我如何正确编码以使其按预期工作
非常感谢您的帮助
答案 0 :(得分:4)
您无需对单引号进行转义,只需对双引号进行反斜杠\
要确保正确设置params
变量,可以将它们输出到文件中并查看内容:
- name: Save output
copy: content="{{ params }}" dest=/path/to/destination/file