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.

$!<br />

$_<br />

PID (ID <strong>di</strong> processo) dell’ultimo job eseguito in background<br />

LOG=$0.log<br />

COMANDO1="sleep 100"<br />

Capitolo 9. Variabili riviste<br />

echo "Registra i PID dei coman<strong>di</strong> in background dello script: $0" >> "$LOG"<br />

# Possono essere così controllati e, se necessario, "uccisi".<br />

echo >> "$LOG"<br />

# Registrazione dei coman<strong>di</strong>.<br />

echo -n "PID <strong>di</strong> \"$COMANDO1\": " >> "$LOG"<br />

${COMANDO1} &<br />

echo $! >> "$LOG"<br />

# PID <strong>di</strong> "sleep 100": 1506<br />

# Grazie a Jacques Lederer, per il suggerimento.<br />

possibile_job_bloccante & { sleep ${TIMEOUT}; eval ’kill -9 $!’ &> /dev/null; }<br />

# Forza il completamento <strong>di</strong> un programma mal funzionante.<br />

# Utile, ad esempio, negli script init.<br />

# Grazie a Sylvain Fourmanoit per aver segnalato quest’uso creativo della variabile "!".<br />

Variabile speciale impostata all’ultimo argomento del precedente comando eseguito.<br />

Esempio 9-9. Variabile underscore<br />

#!/bin/bash<br />

echo $_ # /bin/bash<br />

# <strong>di</strong>gitate solo /bin/bash per eseguire lo script.<br />

du >/dev/null # Non viene visualizzato alcun output del comando.<br />

echo $_ # du<br />

ls -al >/dev/null # Non viene visualizzato alcun output del comando.<br />

echo $_ # -al (ultimo argomento)<br />

:<br />

echo $_ # :<br />

117

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

Saved successfully!

Ooh no, something went wrong!