Ansible中的lineinfile换行

时间:2018-12-27 22:15:28

标签: ansible

我发现尊重正则表达式换行符\n的唯一方法是将所有内容都用双引号连接起来。

---
- name: Custom prompt output
  lineinfile:
    path: ~/.zshrc
    line: "\n# Custom Prompt\nlocal user=\"%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[green]%}%m%{$reset_color%}\"\nPROMPT=\"${user} ${PROMPT}\""
    state: present

结果正确无误,但非常丑陋。有办法改善这一点吗?

1 个答案:

答案 0 :(得分:1)

一种选择是使用blockinfile

- name: Custom prompt output
  blockinfile:
    path: ~/.zshrc
    create: yes
    block: |
      # Custom Prompt
      local user="%{$fg[yellow]%}%n%{$fg[white]%}@%{$fg[green]%}%m%{$reset_color%}"
      PROMPT="${user} ${PROMPT}"