On Thursday 22 March 2007 19:31:16 Costin Guşă wrote:
> + [EMAIL PROTECTED]
> + echo oldmail = [EMAIL PROTECTED]
> oldmail = [EMAIL PROTECTED]
> + '[' [EMAIL PROTECTED] == ceva ']'
> + [[ [EMAIL PROTECTED] == [EMAIL PROTECTED] ]]
>
>
> care ar putea fi cauza pentru care caracterele variabilei $oldmail
> sunt afisate escapat in comparatia if ?

E o metoda de a te informa in procesul de debugging ca respectivul string 
e "quoted" si nu este un pattern. In bash se poate face pattern matching de 
forma: 

  var=abcd
  [[ "abcd" == *bc* ]] && echo "$var contine 'bc'"

Daca ai fi pus "*bc*" in loc de *bc* atunci comparatia s-ar fi facut ad 
literam, iar in debugging ti-ar fi prefixat caracterele cu cate un '\'. Deci 
backslash-ul are doar un scop informativ in debugging, nu inseamna ca 
respectivele caractere sunt "escaped" si nici ca backslash-urile intervin in 
comparatie.

Ca o nota aditionala, comparatii de genul "x" == "x$variabila" se faceau pe 
vremuri cand /bin/sh nu stia sa trateze cazul string-urilor vide. Acum poti 
folosi cu succes '-n' sau '-z' pentru a testa daca o variabila e vida sau nu.


Mihai

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui