Я передаю аргументы командной строки в сценарий оболочки, и он сравнивается с регулярным выражением.В следующем коде учитывается регистр:
[[ $1 =~ ^(cat)|(dog)$ ]] && echo "match" || echo "no match"
Как я могу изменить это регулярное выражение, которое будет игнорировать регистры?Я мог бы передать cAt
, и он должен совпадать.
Я хочу использовать флаг регулярного выражения /i
, поскольку он игнорирует случаи.Но как мне использовать его внутри сценария оболочки?Я пробовал [[ $1 =~ /(cat)|(dog)/i ]]
, но скрипт завершился с синтаксической ошибкой.
У StackOverflow есть похожий вопрос, но он не отвечает на мой запрос. Я хочу использовать test
для сравнения обоихстроки и не заинтересованы использовать shopt -s nocasematch
или grep <expression>