O script abaixo funciona. A grande diferença foi não colocar as aspas
de novo na hora de comparar a regex.
#!/bin/bash
BATATA="((br|eth|tap)0|lo|tap[1-3]|vmnet8)"
if [[ "\<eth0" =~ $BATATA ]]
then
echo ok
else
echo nok
fi
[]'s
Eri
2009/6/2 Alain M. <[email protected]>:
> estou com problema para fazer um if em bash usando regex.
>
> comando:
> # IFS="br0 eth0 lo tap0 tap1 tap2 tap3 vmnet8"; set -x; if [[ "$IFS" =~
> "\<eth0" ]]; then echo ok; else echo nok; fi
>
> retorna nok. o problema é com p \< que deveria casar o começo da palavra
> mas não que funcionar.
>
> usanoo: GNU bash, version 3.2.39(1) (Ubuntu 8.06)
>
> agradeço qq esclarecimento,
> Alain
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: [email protected]
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
> Links do Yahoo! Grupos
>
>
>