Script di shell sotto Linux

mercoledì 3 ottobre 2007 alle 03:34 | Pubblicato su Linux | Lascia un commento

Da programmatore dilettante di script per shell Linux devo dire che scrivere tali script non è proprio facile.

Oggi ho perso un paio d’ore per far funzionare un if con un test:

if [ $EXP_RESULT -eq 0 -a “$EXP_WARNING”=”without”]
Ebbene nel frammento di codice che ho riportato vi sono due errori, uno lo conoscevo gia e viene evidenziato subito all’esecuzione: fra le espressioni e le parentesi quadre ci va uno spazio, quindi;

if [ $EXP_RESULT -eq 0 -a “$EXP_WARNING”=”without” ]
E’ rimasto solo un errore, molto subdolo, per il quale lo script girava senza segnalare errori ma entrando nella sezione then anche se la seconda condizione pareva falsa. In realtà anche nella seconda condizione mancano degli spazi, quindi:

if [ $EXP_RESULT -eq 0 -a “$EXP_WARNING” =  “without” ]

E’ corretto. Quindi ne ricavo che una buona prassi è non lesinare con gli spazi nelle espressioni usate nei test. Attenzione, nelle assegnazioni delle variabili, tipo:

EXP_RESULT=$?

guai a mettere lo spazio.

Lascia un commento »

RSS feed for comments on this post. TrackBack URI

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Blog su WordPress.com.
Entries e commenti feeds.

%d blogger cliccano Mi Piace per questo: