Desidero dedicare un paragrafo di questa guida ai caratteri speciali, ovvero a quei caratteri che hanno un comportamento anomalo all’interno di uno script in quanto ad essi è assegnato, di default, una specifica funzione ulteriore alla loro semplice rappresentazione.
Primo carattere da considerare in questa sede è l’asterisco (*) anche detto wildcards. Proviamo a digitare quanto segue:
echo *
Ci accorgeremo subito che il risultato non sarà la stampa a video del simbolo asterisco, bensì l’elencazione sequenziale di tutti i file presenti nella directory. Perchè? Semplice, l’asterisco (anche detto wildcards) è un carattere jolly e viene interpretato dal sistema operativo come identificazione generica di un indeterminato numero di file.
Se avessimo scritto:
echo *.jpg
Sarebbero stati stampati a video i nomi di tutti i file .jpg della directory.
Se avessimo scritto:
echo foto_*.jpg
Sarebbero stati stampati a video i nomi di file coincidenti, ad es.: foto_mario.jpg foto_lucia.jpg foto_mary.jpg e così via.Ma cosa fare per stampare a video l’asterisco (senza che questo venga interpretato come wildcards)? Semplice… mettiamolo tra virgolette:
echo "*"
Altri caratteri particolari da prendere in considerazione sono le virgolette (“), il simbolo del dollaro ($), il backslash (\) ed il backtick (`).
Tutti questi caratteri, se utilizzati senza le opportune precauzioni, verranno interpretati dal sistema operativo…
Perchè vengano semplicemente stampati a video sarà necessario e sufficiente farli precedere dal carattere di escape (una backslash).
Ricapitolando:
#Utilizzo errato
echo "voglio stampare: " $ \ `"
#Utilizzo corretto
echo "voglio stampare: \" \$ \\ \`"
Solo nel secondo caso i nostri simboli speciali saranno stampati a video correttamente…Pubblicitร