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.

# * Quod Erat Demonstrandum: come volevasi <strong>di</strong>mostrare [N.d.T.]<br />

Con la sostituzione <strong>di</strong> comando è possibile creare i singoli elementi <strong>di</strong> un array.<br />

Esempio 26-5. Inserire il contenuto <strong>di</strong> uno script in un array<br />

#!/bin/bash<br />

# script-array.sh: Inserisce questo stesso script in un array.<br />

# Ispirato da una e-mail <strong>di</strong> Chris Martin (grazie!).<br />

Capitolo 26. Array<br />

contenuto_script=( $(cat "$0") ) # Registra il contenuto <strong>di</strong> questo script ($0)<br />

#+ in un array.<br />

for elemento in $(seq 0 $((${#contenuto_script[@]} - 1)))<br />

do # ${#contenuto_script[@]}<br />

#+ fornisce il numero degli elementi <strong>di</strong> un array.<br />

#<br />

# Domanda:<br />

# Perché è necessario seq 0?<br />

# Provate a cambiarlo con seq 1.<br />

echo -n "${contenuto_script[$elemento]}"<br />

# Elenca tutti i campi dello script su una sola riga.<br />

echo -n " -- " # Usa " -- " come separatore <strong>di</strong> campo.<br />

done<br />

echo<br />

exit 0<br />

# Esercizio:<br />

# ---------<br />

# Mo<strong>di</strong>ficate lo script in modo che venga visualizzato<br />

#+ nella sua forma originale,<br />

#+ completa <strong>di</strong> spazi, interruzioni <strong>di</strong> riga, ecc.<br />

Nel contesto degli array, alcuni builtin <strong>di</strong> <strong>Bash</strong> assumono un significato leggermente <strong>di</strong>verso. Per<br />

esempio, unset cancella gli elementi dell’array o anche un intero array.<br />

Esempio 26-6. Alcune proprietà particolari degli array<br />

#!/bin/bash<br />

declare -a colori<br />

# Tutti i coman<strong>di</strong> successivi presenti nello script tratteranno<br />

#+ la variabile "colori" come un array.<br />

echo "Inserisci i tuoi colori preferiti (ognuno separato da uno spazio)."<br />

read -a colori # Inserite almeno 3 colori per mettere alla prova le<br />

#+ funzionalità che seguono.<br />

478

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

Saved successfully!

Ooh no, something went wrong!