I sh, чтобы проверить, существует ли мой текст Options
между открывающими и закрывающими тегами LocationMatch
. Ниже sed
команда дает мне желаемый результат.
$ sed -n '/^<LocationMatch "^\/+$">/,/^<\/LocationMatch/p' httpd.conf | grep -i 'Options '
Options -Indexes
Однако я получаю синтаксическую ошибку при выполнении той же команды из ansible.
- name: Check if Options exists between Location Match tags
shell: "sed -n '/^<LocationMatch \"^\/+$\">/,/^<\/LocationMatch/p' {{ httpd_home }}/conf/httpd.conf | grep -i 'Options '"
register: Optionsexist
Вывод:
shell: "sed -n '/^<LocationMatch \"^\/+$\">/,/^<\/LocationMatch/p' {{ httpd_home }}/conf/httpd.conf | grep -i 'Options '"
^ here
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
Я сохранил escape-символ ansible перед двойными кавычками в команде sed.
Подскажите, пожалуйста, рабочий синтаксис.