-1

我有以下尝试打印感叹号的剧本。但是 test.txt 文件总是有一行“-e!\”。

是 lineinfile 的行为,您不能再添加 SAME 行吗?我可以禁用此行为吗?或者这是任何解决方法?

- hosts: localhost
  vars:
      items_list:
          - '!'
          - '!'
          - '!'
  tasks:
      - name: "append all items"
      lineinfile:
          dest: "test.txt"
          line: '-e {{ item }} \'
      with_items: "{{ items_list }}"

      - name: "append all items"
      lineinfile:
          dest: "test.txt"
          line: '-e {{ item }} \'
      with_items: "{{ items_list }}"


devops@devops:~/ANSIBLE$ more test.txt
-e ! \
4

1 回答 1

1

添加多行不是lineinfile模块的目的。

文档上的描述非常清楚:

  • 此模块确保特定行位于文件中,或使用反向引用的正则表达式替换现有行。
  • 当您只想更改文件中的一行时,这主要有用。如果要更改多个相似的行,请参阅替换模块;如果要在文件中插入/更新/删除一行行,请检查 blockinfile。对于其他情况,请参阅复制或模板模块。

所以不,你不能。要实现所需的行为,请使用上面建议的模块之一。

于 2018-09-02T22:19:05.273 回答