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.

Pubblicitร 

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).