Нужна помощь в передаче команды curl в Ansible

Как упоминал Эрик Венделин, вы можете сделать что-то вроде этого:

str1 = "pattern"
var re = new RegExp(str1, "g");
"pattern matching .".replace(re, "regex");

Это дает "regex matching .". Однако он будет терпеть неудачу, если str1 - ".". Вы ожидаете, что результат будет "pattern matching regex", заменив период на "regex", но он окажется ...

regexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregexregex

Это потому, что, хотя "." a String, в конструкторе RegExp он по-прежнему интерпретируется как регулярное выражение, что означает любой символ нестрочного разрыва, означающий каждый символ в строке. Для этой цели может быть полезной следующая функция:

 RegExp.quote = function(str) {
     return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
 };

. Тогда вы можете сделать:

str1 = "."
var re = new RegExp(RegExp.quote(str1), "g");
"pattern matching .".replace(re, "regex");

, уступая "pattern matching regex".

0
задан Alexander Do 27 March 2019 в 20:10
поделиться

1 ответ

Извлечение из одной из справочных ролей для установки gitlab-ce => https://github.com/geerlingguy/ansible-role-gitlab

- name: Download GitLab repository installation script.
  get_url:
    url: "{{ gitlab_repository_installation_script_url }}"
    dest: /tmp/gitlab_install_repository.sh
    validate_certs: "{{ gitlab_download_validate_certs }}"
  when: not gitlab_file.stat.exists

- name: Install GitLab repository.
  command: bash /tmp/gitlab_install_repository.sh
  when: not gitlab_file.stat.exists

Условия здесь, чтобы остановить установку, если это уже сделано. Посмотрите на роль и другие ее задачи и значения по умолчанию для получения дополнительной информации

0
ответ дан Zeitounator 27 March 2019 в 20:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: