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
