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.

# Opzioni impostate nello script.<br />

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

echo "Parametri posizionali dopo set \‘uname -a\‘ :"<br />

# $1, $2, $3, ecc. reinizializzati col risultato <strong>di</strong> ‘uname -a‘<br />

echo "Campo nr.1 <strong>di</strong> ’uname -a’ = $1"<br />

echo "Campo nr.2 <strong>di</strong> ’uname -a’ = $2"<br />

echo "Campo nr.3 <strong>di</strong> ’uname -a’ = $3"<br />

echo --echo<br />

$_ # --echo<br />

exit 0<br />

Invocando set senza alcuna opzione, o argomento, viene visualizzato semplicemente l’elenco <strong>di</strong><br />

tutte le variabili d’ambiente, e non solo, che sono state inizializzate.<br />

bash$ set<br />

AUTHORCOPY=/home/bozo/posts<br />

BASH=/bin/bash<br />

BASH_VERSION=$’2.05.8(1)-release’<br />

...<br />

XAUTHORITY=/home/bozo/.Xauthority<br />

_=/etc/bashrc<br />

variabile22=abc<br />

variabile23=xzy<br />

set con --$variabile assegna in modo esplicito il contenuto della variabile ai parametri<br />

posizionali. Se non viene specificata nessuna variabile dopo --, i parametri posizionali vengono<br />

annullati.<br />

Esempio 11-16. Riassegnare i parametri posizionali<br />

#!/bin/bash<br />

variabile="uno due tre quattro cinque"<br />

set -- $variabile<br />

# Imposta i parametri posizionali al contenuto <strong>di</strong> "$variabile".<br />

primo_param=$1<br />

secondo_param=$2<br />

shift; shift # Salta i primi due parametri posizionali.<br />

restanti_param="$*"<br />

echo<br />

echo "primo parametro = $primo_param" # uno<br />

echo "secondo parametro = $secondo_param" # due<br />

echo "rimanenti parametri = $restanti_param" # tre quattro cinque<br />

206

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

Saved successfully!

Ooh no, something went wrong!