Соответствие регулярного выражения Bash с шаблоном

codeforester спросил: 03 февраля 2018 в 10:05 в: regex

Я пытаюсь проверить, имеет ли данная строка .rel6.. Я немного озадачен поведением регулярного выражения Bash. Что мне здесь не хватает?

os=$(uname -r)                        # set to string "2.6.32-504.23.4.el6.x86_64"[[ $os =~ *el6*    ]] && echo yes     # doesn't match, I understand it is Bash is treating it as a glob expression
[[ $os =~ el6      ]] && echo yes     # matches
[[ $os =~ .el6     ]] && echo yes     # matches
[[ $os =~ .el6.    ]] && echo yes     # matches
[[ $os =~ ".el6."  ]] && echo yes     # matches
[[ $os =~ *".el6." ]] && echo yes     # * does not match - why? *
[[ $os =~ ".el6."* ]] && echo yes     # matchesre='\.el6\.'
[[ $os =~ $re      ]] && echo yes     # matches

В частности, этот:

[[ $os =~ *".el6." ]] && echo yes

0 ответов