Я нашел хороший answer, в котором объясняется, как удалить указанный шаблон из строковой переменной. В этом случае, чтобы удалить «Foo» мы используем следующее:Удалить указанный строковый шаблон (ы) из строки в bash
string="fooSTUFF"
string="${string#foo}"
Однако, я хотел бы добавить «ИЛИ» функциональность, которая была бы в состоянии удалить «Foo» или «б» в тех случаях, когда моя строка начинается с любого из них и оставляет строку как есть, если она не начинается с 'foo' или 'boo'. Таким образом, модифицированный сценарий должен выглядеть примерно так:
string="fooSTUFF"
string="${string#(foo OR boo)}"
Как это можно правильно реализовать?
Благодарим вас за обращение к руководству. Не могли бы вы расширить свой ответ на вопрос «(включен ли с помощью shopt-extglob)»? Где в скрипте он должен быть помещен? Нужно ли мне в какой-то момент отключить его? как это сделать? – Nazar
@Naz Команда 'shopt -s extglob' должна быть выпущена в любой момент, прежде чем использовать шаблон' @ (...) '. Я не буду болеть, чтобы он включался, но если вы хотите явно отключить его, просто выпустите 'shopt -u extglob'. Обратите внимание, что расширенные глобы автоматически включаются для '[[$ var = pattern]]' условных чисел. Дополнительную информацию о команде 'shopt' см. В [manual] (https://www.gnu.org/software/bash/manual/bashref.html#The-Shopt-Builtin). –