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.

in<strong>di</strong>ce=1 # Inizializza il contatore.<br />

Capitolo 9. Variabili riviste<br />

echo "Elenco degli argomenti con \"\$*\":"<br />

for arg in "$*" # Non funziona correttamente se "$*" non è tra apici.<br />

do<br />

echo "Argomento nr.$in<strong>di</strong>ce = $arg"<br />

let "in<strong>di</strong>ce+=1"<br />

done # $* vede tutti gli argomenti come un’unica parola.<br />

echo "Tutto l’elenco come parola singola."<br />

echo<br />

in<strong>di</strong>ce=1 # Reimposta il contatore.<br />

# Cosa succede se vi <strong>di</strong>menticate <strong>di</strong> farlo?<br />

echo "Elenco degli argomenti con \"\$@\":"<br />

for arg in "$@"<br />

do<br />

echo "Argomento nr.$in<strong>di</strong>ce = $arg"<br />

let "in<strong>di</strong>ce+=1"<br />

done # $@ vede gli argomenti come parole separate.<br />

echo "Elenco composto da <strong>di</strong>verse parole."<br />

echo<br />

in<strong>di</strong>ce=1 # Reimposta il contatore.<br />

echo "Eleco degli argomenti con \$* (senza quoting):"<br />

for arg in $*<br />

do<br />

echo "Argomento nr.$in<strong>di</strong>ce = $arg"<br />

let "in<strong>di</strong>ce+=1"<br />

done # $* senza quoting vede gli argomenti come parole separate.<br />

echo "Elenco composto da <strong>di</strong>verse parole."<br />

exit 0<br />

Dopo uno shift, venendo a mancare il precedente $1, che viene perso, $@ contiene i restanti<br />

parametri posizionali.<br />

#!/bin/bash<br />

# Da eseguire con ./nomescript 1 2 3 4 5<br />

echo "$@" # 1 2 3 4 5<br />

shift<br />

echo "$@" # 2 3 4 5<br />

shift<br />

echo "$@" # 3 4 5<br />

# Ogni "shift" perde il precedente $1.<br />

# Come conseguenza "$@" contiene i parametri rimanenti.<br />

112

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

Saved successfully!

Ooh no, something went wrong!