Соответствует нулю или более символов открытой скобки (\[*
), за которыми следует точка и квадратная скобка (\.\]
).Обратите внимание, что требуется только, чтобы совпадение существовало где-то в «$ line», а не совпадение всей строки.Вот демо:
$ showmatch() { [[ "$1" =~ \[*\.\] ]] && echo "matched: '${BASH_REMATCH[0]}'" || echo "no match"; }
$ showmatch "abc[.]def"
matched: '[.]'
$ showmatch "abc.]def"
matched: '.]'
$ showmatch "abc[[[[[[[.]def"
matched: '[[[[[[[.]'
$ showmatch "abc[[[[[[[xyz.]def"
matched: '.]'
$ showmatch "abc[[[[[[[.xyz]def"
no match
... и я почти уверен, что это не то, что он должен делать в этом примере скрипта.