back to top

Wildcards e altri caratteri speciali – Guida Shell Scripting

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ร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).