shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Dica - Expressao regular no IF (bash)


From: Marcus Vinicius
Subject: Dica - Expressao regular no IF (bash)
Date: Sun, 29 Jul 2007 07:30:18 -0700 (PDT)

Pessoal, segue uma diquinha de como usar expressões regulares no if do bash.


Vejo muita gente usando comandos externos como egrep, sed, awk e outros para 
fazer uma simples comparação de er que o próprio bash (nas novas versões) sabe 
fazer muito bem.

Veja como a sintaxe eh simples:

   [[ "Texto" =~ "regexp" ]] &&
      comando;

ou 

   [[ "Texto" =~ "regexp" ]] && {
      comando 1;
      comando 2;
      comando n;
   }


Quando o operador =~ eh usado a string ao lado direito do operador eh 
considerada uma experssão regular. O valor de retorno eh 0 caso a string case 
com o padrão, e 1 do contrário.
Exemplos:



# echo $BASH_VERSION
3.00.0(1)-release

# string="12345"
# [[ $string =~ "^[0-9]{1,}$" ]] && echo "Casou"
Casou

# string="Linux12345"
# [[ $string =~ "^[0-9]{1,}$" ]] && echo "Casou"
#

# hora="1h20m32s"
# [[ ${hora} =~ "^[0-9]{1,}[h][0-9]{1,}[m][0-9]{1,}[s]$" ]] && echo "Casou"
Casou

Espero que a dica seja aproveitada.

Abraços.


Marcus Vinícius


      Flickr agora em português. Você cria, todo mundo vê.
http://www.flickr.com.br/

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]