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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

suspend<br />

logout<br />

times<br />

kill<br />

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

Un altro modo per far fronte a questo problema è quello <strong>di</strong> re<strong>di</strong>rigere l’output del comando in un<br />

file o anche in /dev/null.<br />

Ha un effetto simile a Control-Z, ma sospende la shell (il processo genitore della shell può, ad un<br />

certo momento stabilito, farle riprendere l’esecuzione).<br />

È il comando <strong>di</strong> uscita da una shell <strong>di</strong> login. Facoltativamente può essere specificato un exit status.<br />

Fornisce statistiche sul tempo <strong>di</strong> sistema impiegato per l’esecuzione dei coman<strong>di</strong>, nella forma<br />

seguente:<br />

0m0.020s 0m0.020s<br />

Questo comando ha un valore molto limitato perché non è <strong>di</strong> uso comune tracciare profili o<br />

benchmark degli script <strong>di</strong> shell.<br />

Termina imme<strong>di</strong>atamente un processo inviandogli un appropriato segnale <strong>di</strong> terminazione (ve<strong>di</strong><br />

Esempio 13-6).<br />

Esempio 11-25. Uno script che uccide sé stesso<br />

#!/bin/bash<br />

# self-destruct.sh<br />

kill $$ # Lo script in questo punto "uccide" il suo stesso processo.<br />

# Ricordo che "$$" è il PID dello script.<br />

echo "Questa riga non viene visualizzata."<br />

# Invece, la shell invia il messaggio "Terminated" allo stdout.<br />

exit 0<br />

# Dopo che lo script è terminato prematuramente, qual’è l’exit<br />

#+ status restituito?<br />

#<br />

# sh self-destruct.sh<br />

# echo $?<br />

# 143<br />

#<br />

# 143 = 128 + 15<br />

# segnale SIGTERM<br />

Nota: kill -l elenca tutti i segnali. kill -9 è il “killer infallibile”, che solitamente interrompe<br />

un processo che si rifiuta ostinatamente <strong>di</strong> terminare con un semplice kill. Talvolta funziona<br />

221

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

Saved successfully!

Ooh no, something went wrong!