otaznik jako parametr shell skriptu

Honza Pazdziora adelton na informatics.muni.cz
Středa Únor 12 09:12:45 CET 1997


> Ve skriptu shellu chci rozpoznavat zda je jako parametr zadan otaznik.
> Asi nejak takhle. (Vim ze otaznik ma specialni vyznam a musi byt
> quotovan.)
> 
> if [ "$1" = "?" ]
> then
>   echo "otaznik"
> fi
> 
> Ale shell mi vzdycky ten otaznik "rozexpanduje".
> Kdyz si dam neco jako
> echo $1
> 
> shell mi vrati prvni nazev souboru v aktualnim adresari ktery tomu
> vyhovuje. Zde soubor s jednopismenovym nazvem.
> 
> Nevite nekdo jak poznam, ze ten parametr je otaznik ?

Problem neni v tom Vasem skriptu, jak se nekteri snazi Vas presvedcit,
ale v jeho volani. Pokud se ten skript jmenuje treba jezek a Vy to
zavolate jako

$ jezek ?

nastanou dve moznosti: bud v tom adresari mate fajl delky 1 a pak se
do $1 dosadi jeho jmeno, anebo tam fajl delky 1 nemate, a pak se do $1
dosadi otaznik. A jelikoz Vy byste tam asi chtel otaznik vzdycky,
volejte to jako

$ jezek "?"
$ jezek '?'

nebo

$ jezek \?

Tim donutite shell, ktery zpracovava to volani, aby expanzi toho
otazniku neprovadel.

Cili problem neni v tom "jak poznam, ze ten parametr je otaznik", ale
spise v tom, jak tam ten otaznik vubec dostat.

Hope this helps.

------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
                   I can take or leave it if I please
------------------------------------------------------------------------


Další informace o konferenci Linux