[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