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

Raspunde prin e-mail lui