Bash scripting - caratteri di escape: differenze tra le versioni

m
Riga 42: Riga 42:


==Racchiudere tra $'...'==
==Racchiudere tra $'...'==
Una stringa racchiusa tra <code>$'...'</code> non può essere espansa in nessun modo, come se fosse racchiusa tra apici. Il carattere <code>\</code> resta un carattere di escape, quindi è possibile inserire un apice nella stringa facendolo precedere da <code>\</code> e dev'essere preceduto dal carattere di escape anche ogni <code>\</code> da stampare letteralmente.
Con '''bash''' (non ''POSIX'') una stringa racchiusa tra <code>$'...'</code> non può essere espansa in nessun modo, come se fosse racchiusa tra apici. Il carattere <code>\</code> resta un carattere di escape, quindi è possibile inserire un apice nella stringa facendolo precedere da <code>\</code> e dev'essere preceduto dal carattere di escape anche ogni <code>\</code> da stampare letteralmente.


Un carattere <code>\</code> non preceduto da escape permette di stampare caratteri di escape, con la stessa sintassi del formato di <code>printf</code> (quando racchiuso tra apici):
Un carattere <code>\</code> non preceduto da escape permette di stampare caratteri di escape, con la stessa sintassi del formato di <code>printf</code> (quando racchiuso tra apici):
Riga 63: Riga 63:
</pre>
</pre>


È un metodo molto meno diffuso rispetto a racchiudere tra apici e virgolette, perché non derivata da '''sh''' (''POSIX'').
È un metodo molto meno diffuso rispetto a racchiudere tra apici e virgolette, perché non derivato da '''sh''' (''POSIX''). È in genere sconsigliabile utilizzarlo, se non per assegnare caratteri di escape (a capo o tabulazioni) a una variabile.


==Quotare (tra virgolette)==
==Quotare (tra virgolette)==
3 581

contributi