Claudiu Cismaru wrote:
Ca sa nu puna botu' si altii, e bine de spus: bash compara stringuri
indiferent de cum le scrii (cu ghilimele sau fara), daca nu-i spui
explicit ca ai numere acolo (ARITHMETIC EVALUATION si CONDITIONAL
EXPRESSIONS in man). Singura idee e ca daca scrii o variabila fara
ghilimele si valoarea ei e "", sa nu te sperii de erorile de sintaxa
din zona ei :)
Adica, ca nu pricep. Eu stiu asa:
A="Ion cu vaca"
B="Ion cu vaca"
$A == $B, dar $A != "$B"
bash vede "comparatiile" tale asa:
prima:
Ion cu vaca == Ion cu vaca # 3 tokenuri == 3 tokenuri => eroare de sintaxa
a doua:
Ion cu vaca != "Ion cu vaca" # 3 tokenuri != 1 token => eroare de sintaxa
Problema aici e ca $A expandeaza la 3 tokenuri, pe cand "$A" la unul
singur. Nu prea se pupa definitiile de variabile din bash cu cele din
perl si php :)
Avand in vedere regulile de expandare ale variabilelor, corect si sigur
e sa scrii toate variabile quotate: "$A" == "$B".
Astea sunt balabile pentru [ ... ], test si [[ ... ]].
Cu '[' si 'test' nu le mai am demult, dar '[[' are '-ne', '-eq', '-lt',
etc. pt. compararea de numere, din nou, quotate, pentru a preveni
expandarea aiurea.
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug