Ситуация не работает в Bash, условия не применяются

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

Следующее мое предположение состоит в том, что эта строка является частью большей строки.

^ соответствует начало строки по умолчанию

$ по умолчанию соответствует концу строки.

Теперь, поскольку ваша строка содержит материал до и после, вам нужно изменить это поведение по умолчанию:

С модификатором Multiline, ^ соответствует началу строки, а $ - концу строки. Дополнительную информацию см. В документации .

Итак, ваше регулярное выражение должно выглядеть примерно так:

Regex regx = new Regex("(?<=^(\s*Owner))(.|\n)*?(?=\s*Information$)", RegexOptions.Singleline | RegexOptions.Multiline);

1
задан John Kugelman 5 March 2019 в 12:58
поделиться

1 ответ

Функция фактически написана правильно. Проблема в том, как она называется.

host=$(get_virtual_host)

Когда вы захватываете вывод команды, команда запускается в подоболочке. Выход из subshell не вызывает непосредственного выхода родительской оболочки; родительская оболочка должна проверить состояние выхода подоболочки.

host=$(get_virtual_host) || exit

При выходе из get_virtual_host произойдет выход из родительского режима. Обнаженный exit без явного кода выхода пересылает существующее значение $?.

0
ответ дан John Kugelman 5 March 2019 в 12:58
поделиться
Другие вопросы по тегам:

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