我遇到了一些意外的'('.的奇怪问题
我有一项任务很容易完成
- 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
参数来确保不会在文件中插入行(如果您需要的话(。(检查上述文件(