sh unexpected operator
Dan Lukes
dan at obluda.cz
Mon May 27 12:20:32 CEST 2013
Radek Krejča wrote:
> if [ -z $souburek ]; then
> Funguje to. Funguje to navic dobre. Ale nekdy v prubehu scriptu (at demon bezi ci ne) to vyhodi hlasku:
> [: souburek: unexpected operator
Problem nastane, pokud je promenna obsahuje nejaky "divny" znak, ktera
zpusobi, ze radek shellu s podminkou je syntakticky vadny.
Mohl bysis samozrejem vypisovat hodnotu te promenne, abys zjistil, ktera
konkretni hodnota problem pusobi, ale daleko lepsi bude napsat to proste
"bezpecne":
> if [ -z "$souburek" ]; then
Doporucuju promenne psat VZDYCKY do uvozovek, ledaze sis jisty, ze to s
ohledem na vsechny mozne hodnoty, ktere mohou byt v konkretni promenne
realne ulozene opravdu neni potreba.
I kdyz mozna neni od veci zjistit jaka konkretni hodnota problem pusobi
- mozna zjistis, ze script ma vic nez jednu vadu, a vykazuje "false
positives" kdy nespravne detekuje beh neceho co neni to co chces
detekovat. Poznavat beh konkretniho programu/scriptu podle vyskytu
jedineho slova ve vypisu 'ps' je totiz spis hack nez dobry napad.
Napriklad staci aby na tom stroji bezel sendmail a zrovna prichazel
dopis od odesilatele souburek at bublifuk.cz ...
Dan
More information about the Users-l
mailing list