Как сопоставить путь с регулярным выражением? (правильный способ кавычек?)

Как сопоставить путь с регулярным выражением? (правильный способ кавычек?)

Я пытаюсь найти регулярное выражение для соответствия пути формата ./foo/baz/bar/filename.cв [[ $string =~ $regex ]]контексте.

Я ожидал, что regex=$'(^\./).*$'будет соответствовать, но ${BASH_REMATCH[1]}остается пустым. Я пытался избежать скобок или убрать , но .*безуспешно.

Я узнал об удобном способе доступа к вложенным группам захвата через BASH_REMATCHдругой $stringконтент (один дополнительный индекс для уровня вложенности и группы захвата справа), но с этим я не могу совпасть.

В чем моя неудача?

решение1

Работает с $stringпеременной, [[ $string =~ $pattern ]]заключенной в $'...'одинарные кавычки или '...'без предшествующего знака доллара.

Связанный контент