11.04.2013 Views

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

Guida avanzata di scripting Bash - Portale Posta DMI

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

$SHELLOPTS<br />

$SHLVL<br />

$TMOUT<br />

while [ "$SECONDS" -le "$TEMPO_LIMITE" ]<br />

do<br />

if [ "$SECONDS" -eq 1 ]<br />

then<br />

unita=secondo<br />

else<br />

unita=secon<strong>di</strong><br />

fi<br />

echo "Questo script è in esecuzione da $SECONDS $unita."<br />

# Su una macchina lenta o sovraccarica lo script, talvolta,<br />

#+ potrebbe saltare un conteggio.<br />

sleep $INTERVALLO<br />

done<br />

echo -e "\a" # Beep!<br />

exit 0<br />

l’elenco delle opzioni <strong>di</strong> shell abilitate. È una variabile in sola lettura<br />

Capitolo 9. Variabili riviste<br />

bash$ echo $SHELLOPTS<br />

braceexpand:hashall:histexpand:monitor:history:interactive-comments:emacs<br />

Livello della shell. Profon<strong>di</strong>tà <strong>di</strong> annidamento <strong>di</strong> <strong>Bash</strong>. Se, da riga <strong>di</strong> comando $SHLVL vale 1, in<br />

uno script questo valore viene aumentato a 2.<br />

Se la variabile d’ambiente $TMOUT è impostata ad un valore tempo <strong>di</strong>verso da zero, il prompt della<br />

shell termina dopo tempo secon<strong>di</strong>. Questo provoca il logout.<br />

Dalla versione <strong>Bash</strong> 2.05b è possibile utilizzare $TMOUT negli script in combinazione con read.<br />

# Funziona negli script con <strong>Bash</strong> versione 2.05b e successive.<br />

TMOUT=3 # Imposta il prompt alla durata <strong>di</strong> tre secon<strong>di</strong>.<br />

echo "Qual’è la tua canzone preferita?"<br />

echo "Svelto, hai solo $TMOUT secon<strong>di</strong> per rispondere!"<br />

read canzone<br />

if [ -z "$canzone" ]<br />

then<br />

106

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!