O erro de sintaxe é auto-explicativo, ou seja, você usou ~=
em vez de =~
.
Em relação ao padrão Regex, use apenas $pat
(e também $item
), sendo que um shell integrado em [[
pode manipular a divisão de palavras:
item='foobar baz'
pat=".+bar baz"
if [[ $item =~ $pat ]]; then
echo ok
fi
Quando você usa aspas duplas em torno de $pat
, ou seja, "$pat"
, os tokens Regex .
e +
são tratados literalmente.
Exemplo:
$ item='foobar baz'; pat=".+bar baz"; if [[ $item =~ $pat ]]; then echo OK; fi
OK