在 ansible 变量"("中转义字符时遇到问题



我遇到了一些意外的'('.的奇怪问题

我有一项任务很容易完成

- name: save results to csv
become: yes
shell: |
res=$(istat "{{ var_path }}" | grep Protection | xargs)
echo ""{{ policyname }}","{{ itemId }}","{{ description }}","$res"" >> output.csv

此任务适用于大多数输入。但是当描述变量包含这样的内容时:

"做这个和那个(某事(某事;

我得到一个错误:

"std_err": "/bin/sh[3]: 0403-057 Syntax error at line 3: `(' is not expected."

这只发生在CCD_ 1的值中;((";。当我尝试删除这些字符时,一切都很好。如果重要的话,目标主机是aix7.1

不应该使用shell模块来附加到文件,而应该使用lineinfile模块:

- name: get what you need
become: yes
shell: 'istat "{{ var_path }}" | grep Protection | xargs'
register: res
- name: insert it at the end of CSV
lineinfile:
line: '"{{ policyname }}","{{ itemId }}","{{ description }}","{{ res.stdout }}"'
path: '/root/output.csv'
become: yes

您可以使用regexp参数来确保不会在文件中插入行(如果您需要的话(。(检查上述文件(

相关内容

  • 没有找到相关文章

最新更新