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.

echo ’- - Riassegnazione e visualizzazione del secondo elemento - -’<br />

declare -a subArray=${dest[1]}<br />

cnt=${#subArray[@]}<br />

echo "Numero <strong>di</strong> elementi: $cnt"<br />

for (( i = 0 ; i < cnt ; i++ ))<br />

do<br />

echo "Elemento [$i]: ${subArray[$i]}"<br />

done<br />

Capitolo 26. Array<br />

# L’assegnamento <strong>di</strong> un intero array ad un singolo elemento<br />

#+ <strong>di</strong> un altro array, utilizzando la notazione ’=${ ... }’,<br />

#+ ha trasformato l’array da assegnare in una stringa,<br />

#+ con gli elementi separati da uno spazio (il primo carattere <strong>di</strong> IFS).<br />

# Se gli elementi d’origine non avessero contenuto degli spazi . . .<br />

# Se l’array d’origine non fosse stato inizializzato in modo dettagliato . . .<br />

# Allora come risultato si sarebbe ottenuto la struttura dell’array d’origine.<br />

# Ripristino con il secondo elemento mo<strong>di</strong>ficato.<br />

echo<br />

echo "- - Visualizzazione dell’elemento ripristinato - -"<br />

declare -a subArray=( ${dest[1]} )<br />

cnt=${#subArray[@]}<br />

echo "Numero <strong>di</strong> elementi: $cnt"<br />

for (( i = 0 ; i < cnt ; i++ ))<br />

do<br />

echo "Elemento [$i]: ${subArray[$i]}"<br />

done<br />

echo ’- - Non fate affidamento su questo comportamento. - -’<br />

echo ’- - Potrebbe <strong>di</strong>vergere nelle versioni <strong>di</strong> <strong>Bash</strong> - -’<br />

echo ’- - precedenti alla 2.05b - -’<br />

# MSZ: Mi scuso per qualsiasi confusa spiegazione fatta in precedenza.<br />

exit 0<br />

--<br />

Gli array consentono la riscrittura, in forma <strong>di</strong> script <strong>di</strong> shell, <strong>di</strong> vecchi e familiari algoritmi. Se questa sia<br />

necessariamente una buona idea, è lasciato al lettore giu<strong>di</strong>care.<br />

Esempio 26-11. Una vecchia conoscenza: il Bubble Sort<br />

#!/bin/bash<br />

# bubble.sh: Or<strong>di</strong>namento a bolle.<br />

# Ricordo l’algoritmo dell’or<strong>di</strong>namento a bolle. In questa particolare versione..<br />

488

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

Saved successfully!

Ooh no, something went wrong!