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.

# Sostituzione <strong>di</strong> sottostringa<br />

# Rimpiazza la prima occorrenza <strong>di</strong> sottostringa con il sostituto<br />

echo ${arrayZ[@]/cin/XYZ} # uno due tre quattro XYZque XYZque<br />

# Controlla tutti gli elementi dell’array.<br />

# Sostituzione <strong>di</strong> tutte le occorrenze <strong>di</strong> sottostringa<br />

echo ${arrayZ[@]//in/YY} # uno due tre quattro cYYque cYYque<br />

# Controlla tutti gli elementi dell’array.<br />

# Cancellazione <strong>di</strong> tutte le occorrenze <strong>di</strong> sottostringa<br />

# Non specificare la sostituzione significa ’cancellare’<br />

echo ${arrayZ[@]//ci/} # uno due tre quattro nque nque<br />

# Controlla tutti gli elementi dell’array.<br />

# Sostituzione delle occorrenze <strong>di</strong> sottostringa nella parte iniziale<br />

echo ${arrayZ[@]/#ci/XY} # uno due tre quattro XYnque XYnque<br />

# Controlla tutti gli elementi dell’array.<br />

# Sostituzione delle occorrenze <strong>di</strong> sottostringa nella parte finale<br />

echo ${arrayZ[@]/%ue/ZZ} # uno dZZ tre quattro cinqZZ cinqZZ<br />

# Controlla tutti gli elementi dell’array.<br />

echo ${arrayZ[@]/%o/XX} # unXX due tre quattrXX cinque cinque<br />

# Perché?<br />

echo "-----------------------"<br />

Capitolo 26. Array<br />

# Prima <strong>di</strong> passare ad awk (o altro) --<br />

# Ricordate:<br />

# $( ... ) è la sostituzione <strong>di</strong> comando.<br />

# Le funzioni vengono eseguite come sotto-processi.<br />

# Le funzioni scrivono i propri output allo stdout.<br />

# L’assegnamento legge lo stdout della funzione.<br />

# La notazione nome[@] specifica un’operazione "for-each" (per-ogni).<br />

nuovastr() {<br />

echo -n "!!!"<br />

}<br />

echo ${arrayZ[@]/%e/$(nuovastr)}<br />

# uno du!!! tr!!! quattro cinqu!!! cinqu!!!<br />

# Q.E.D:* L’azione <strong>di</strong> sostituzione è un ’assegnamento.’<br />

# Accesso "For-Each"<br />

echo ${arrayZ[@]//*/$(nuovastr argomenti_opzionali)}<br />

# Ora, se <strong>Bash</strong> volesse passare semplicemente la stringa verificata come $0<br />

#+ alla funzione da richiamare . . .<br />

echo<br />

exit 0<br />

477

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

Saved successfully!

Ooh no, something went wrong!