Bash scripting: differenze tra le versioni

m
Riga 158: Riga 158:


==Caratteri di escape, apici e virgolette==
==Caratteri di escape, apici e virgolette==
Alcuni caratteri hanno un valore speciale per la shell, per consentirne le espansioni (di variabile, parametro, comando, percorso, ecc...). Di conseguenza se si intende scrivere un carattere speciale senza espanderlo, è necessario comunicarlo alla shell facendolo precedere da un carattere di escape '<code>\</code>' oppure racchiudendolo tra apici o virgolette (a seconda dell'espansione da disattivare).
Alcuni caratteri hanno un valore speciale per la shell, per consentire le espansioni o determinati costrutti. Di conseguenza se si intende scrivere il carattere per il suo valore letterale, è necessario comunicarlo alla shell facendolo precedere da un carattere di escape '<code>\</code>' oppure racchiudendolo tra apici o virgolette.


Una stringa non racchiusa tra apici o tra virgolette ha i seguenti caratteri speciali: <code>$ ' ` " \ { } [ ] * ? ~ & ; ( ) < > | #</code>
Una stringa non racchiusa tra apici o tra virgolette ha i seguenti caratteri speciali: <code>$ ' ` " \ { } [ ] * ? ~ & ; ( ) < > | #</code>
<br/>In determinate circostanze, se non preceduti dal carattere di escape <code>\</code>, possono essere: espansi, eseguiti in background, considerati parte di un nuovo comando, trattati come redirezioni e perfino come commenti. Questa sezione non è esaustiva e non considera tutte le eccezioni, ma consiglia degli accorgimenti che si possono sempre seguire per ridurre la necessità dell'escape.
<br/>In determinate circostanze, se non preceduti dal carattere di escape <code>\</code>, possono essere: espansi, eseguiti in background, considerati parte di un nuovo comando, trattati come redirezioni e perfino come commenti. Questa sezione non è esaustiva e non considera tutte le eccezioni, ma consiglia degli accorgimenti che si possono sempre seguire per ridurre il numero di caratteri speciali.


Inoltre gli spazi (comprese le tabulazioni) non quotati con apici o virgolette, e non preceduti dal carattere di escape <code>\</code>, vengono compressi.
Inoltre gli spazi (comprese le tabulazioni) non quotati con apici o virgolette, e non preceduti dal carattere di escape <code>\</code>, vengono compressi.
3 581

contributi