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.

# Opzione speciale del comando ’read’,<br />

#+ che consente l’assegnamento degli elementi <strong>di</strong> un array.<br />

echo<br />

Capitolo 26. Array<br />

conta_elementi=${#colori[@]}<br />

# Sintassi speciale per ricavare il numero <strong>di</strong> elementi <strong>di</strong> un array.<br />

# conta_elementi=${#colori[*]} anche in questo modo.<br />

#<br />

# La variabile "@" permette la sud<strong>di</strong>visione delle parole, anche se all’interno<br />

#+ degli apici (estrae le variabili separate da spazi).<br />

# Corrisponde al comportamento <strong>di</strong> "$@" e "$*"<br />

#+ nei parametri posizionali.<br />

in<strong>di</strong>ce=0<br />

while [ "$in<strong>di</strong>ce" -lt "$conta_elementi" ]<br />

do # Elenca tutti gli elementi dell’ array.;<br />

echo ${colori[$in<strong>di</strong>ce]}<br />

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

done<br />

# Ogni elemento dell’array viene visualizzato su una riga singola.<br />

# Se non vi piace, utilizzate echo -n "${colori[$in<strong>di</strong>ce]} "<br />

#<br />

# La stessa cosa utilizzando un ciclo "for":<br />

# for i in "${colori[@]}"<br />

# do<br />

# echo "$i"<br />

# done<br />

# (Grazie, S.C.)<br />

echo<br />

# Ancora, elenco <strong>di</strong> tutti gli elementi dell’array utilizzando, però, un<br />

#+ metodo più elegante.<br />

echo ${colori[@]} # anche echo ${colori[*]}.<br />

echo<br />

# Il comando "unset" cancella gli elementi <strong>di</strong> un array, o l’intero array.<br />

unset colori[1] # Cancella il secondo elemento dell’ array.<br />

# Stesso effetto <strong>di</strong> colori[1]=<br />

echo ${colori[@]} # Elenca ancora l’array. Manca il secondo elemento.<br />

unset colori # Cancella l’intero array.<br />

# Anche: unset colori[*] e<br />

#+ unset colori[@].<br />

echo; echo -n "Colori cancellati."<br />

echo ${colori[@]} # Visualizza ancora l’array, ora vuoto.<br />

exit 0<br />

479

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

Saved successfully!

Ooh no, something went wrong!