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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Appen<strong>di</strong>ce A. Script aggiuntivi<br />

echo ’- Corrispondenza più lunga -’<br />

echo ${stringaZ%%1*3} # Inalterata (nessuna corrispondenza).<br />

echo ${stringaZ%%b*c} # a<br />

echo ${arrayZ[@]%%b*c} # a ABCABC 123123 ABCABC a<br />

# Verrà corretto da Chet Ramey in una prossima versione <strong>di</strong> <strong>Bash</strong>.<br />

# echo ${sparsoZ[@]%%b*c} # La versione-2.05b scarica i registri.<br />

echo<br />

echo ’- - Sostituzione <strong>di</strong> elementi - -’<br />

echo ’- - Elementi in una qualsiasi posizione nella stringa. - -’<br />

echo ’- - La prima specifica è il Modello-Globale - -’<br />

echo "- - Il Modello-Globale può essere una stringa letterale \<br />

o il risultato <strong>di</strong> una funzione. - -"<br />

echo "- - La seconda specifica può essere una stringa letterale \<br />

o il risultato <strong>di</strong> una funzione. - -"<br />

echo ’- - La seconda specifica può essere omessa. Leggetelo’<br />

echo ’ come: Sostituisci-Con-Niente (Cancella) - -’<br />

echo<br />

# Funzione che restituisce un semplice, letterale, Modello-Globale<br />

_123() {<br />

echo -n ’123’<br />

}<br />

echo ’- Sostituzione della prima occorrenza -’<br />

echo ${stringaZ/$(_123)/999} # Sostituito (123 era parte della stringa).<br />

echo ${stringaZ/ABC/xyz} # xyzABC123ABCabc<br />

echo ${arrayZ[@]/ABC/xyz} # Applicato a ciascun elemento.<br />

echo ${sparsoZ[@]/ABC/xyz} # Comportamento atteso.<br />

echo<br />

echo ’- Cancellazione della prima occorrenza -’<br />

echo ${stringaZ/$(_123)/}<br />

echo ${stringaZ/ABC/}<br />

echo ${arrayZ[@]/ABC/}<br />

echo ${sparsoZ[@]/ABC/}<br />

# Non occorre che il sostituto sia una stringa letterale,<br />

#+ dal momento che è permesso il risultato <strong>di</strong> una funzione.<br />

# Questo vale per qualsiasi forma <strong>di</strong> sostituzione.<br />

echo<br />

echo ’- Sostituzione della prima occorrenza con Risultato-Di -’<br />

echo ${stringaZ/$(_123)/$(_semplice)} # Funziona nel modo atteso.<br />

echo ${arrayZ[@]/ca/$(_semplice)} # Applicato a ciascun elemento.<br />

echo ${sparsoZ[@]/ca/$(_semplice)} # Funziona nel modo atteso.<br />

echo<br />

echo ’- Sostituzione <strong>di</strong> tutte le occorrenze -’<br />

echo ${stringaZ//[b2]/X} # X sostituisce le b e i 2<br />

echo ${stringaZ//abc/xyz} # xyzABC123ABCxyz<br />

744

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

Saved successfully!

Ooh no, something went wrong!