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.

Capitolo 11. Coman<strong>di</strong> interni e builtin<br />

echo<br />

echo "======================================================================="<br />

echo<br />

# Ora ve<strong>di</strong>amo come "espandere" una variabile usando "eval" . . .<br />

for i in 1 2 3 4 5; do<br />

eval valore=$i<br />

# valore=$i ha lo stesso effetto. "eval", in questo caso, non è necessario.<br />

# Una variabile senza meta-significato valuta se stessa --<br />

#+ non può espandersi a nient’altro che al proprio contenuto letterale.<br />

echo $valore<br />

done<br />

echo<br />

echo "---"<br />

echo<br />

for i in ls df; do<br />

valore=eval $i<br />

# valore=$i in questo caso avrebbe un effetto completamente <strong>di</strong>verso.<br />

# "eval" valuta i coman<strong>di</strong> "ls" e "df" . . .<br />

# I termini "ls" e "df" hanno un meta-significato,<br />

#+ dal momento che sono interpretati come coman<strong>di</strong><br />

#+ e non come stringhe <strong>di</strong> caratteri.<br />

echo $valore<br />

done<br />

exit 0<br />

Esempio 11-12. Forzare un log-off<br />

#!/bin/bash<br />

Terminare ppp per forzare uno scollegamento.<br />

Lo script deve essere eseguito da root.<br />

terminappp="eval kill -9 ‘ps ax | awk ’/ppp/ { print $1 }’‘"<br />

# ----- ID <strong>di</strong> processo <strong>di</strong> ppp ------<br />

$terminappp # La variabile è <strong>di</strong>ventata un comando.<br />

# Le operazioni seguenti devono essere eseguite da root.<br />

chmod 666 /dev/ttyS3 # Ripristino dei permessi <strong>di</strong> lettura+scrittura,<br />

#+ altrimenti?<br />

# Quando si invia un SIGKILL a ppp i permessi della porta seriale vengono<br />

#+ mo<strong>di</strong>ficati, quin<strong>di</strong> vanno ripristinati allo stato precedente il SIGKILL.<br />

203

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

Saved successfully!

Ooh no, something went wrong!