Eu sei que estou atrasado para a festa, mas em vez da solução da ktf:
if echo "$var" | egrep -s '(foo|bar)[0-9]*$' # -s means "silent"
then
...
você também pode usar
if grep -q '(foo|bar)[0-9]*$' <<< "$var" # -q means "quiet" ;-)
then
...
Esta técnica com o operador <<<
é chamada de herestring . No entanto, também devo adicionar um aviso : isso NÃO funcionará em um ambiente somente leitura (ou seja, você obterá mensagens de erro desagradáveis para stderr
), pois o herestring exige que um arquivo temporário seja escrito para algum lugar. Até onde sei, a maneira "clássica" com echo
e um pipe também funciona sem qualquer permissão de gravação.