[BSD] valtozo nevu valtozo

Zahemszky Gabor gabor at zahemszky.hu
2011. Május. 27., P, 11:09:08 CEST


Andras POTOCZKY írta: 

> En szivesen hasznalnam ugy, mert a kezdetekkor is az volt a cel hogy csak 
> masolgatom a scriptet es mindenhol mukodik, de sajnos nem megy a bsd 
> megoldas linuxokon es ezert anno kinomban talaltam ki a bash-only 
> megoldast... ami mar sehol sem megy :) 
> 
> Szoval az eval echo... bsd verzio linuxon (sh-val) sem tartalmaz erteket 
> es igy nem jo.

Ezzel most kicsit megleptél, lévén kipróbáltam bash alatt is amit mondtál. 
De most jobban megnéztem, így a válaszom: 

>>> Ennek a FreeBSD alatt jol mukodo sornak mi a linux helyes megfeleloje?
>>> if [ `eval echo $"$var"` = "YES" ]; then

Ezt a fönti sort írd így: 

if [ `eval echo '$'"$var"` = "YES" ]; then 

Magyarul az első dollárjelet rakjad aposztrófok (vagy idézőjelek) közé - és 
így már megy mind a FreeBSD-féle sh-val, mind a bash-sal. Számomra egyébként 
érthetetlen, mert kéne mennie idézőjel nélkül is, ennél már csak az az 
érthetetlenebb, hogy ha nem aposztrófok/idézőjelek közé teszem, hanem \$ 
formában írom, akkor is mennie kéne, de bash-ban az is üres sztringet ad. 
(Direkt ezért feltettem a dash-t is, hátha bash-nélküli Debianon akarnád 
futtatni - azon is megy. Az eredeti forma is, meg a \$"$var$ , meg a 
'$'"$var" meg a "$""$var" forma is.) Szóval írd át aposztrófosra, és 
kikerülöd ezt az eléggé furcsa - én azt mondom - bash-hibát. 

Zahy < Gabor at Zahemszky dot HU >



További információk a(z) BSD levelezőlistáról