In Bash si possono usare le virgolette, singole o doppie, quando è necessario trattare caratteri come lo spazio.
Se ad esempio vogliamo spostare un file che si chiama “rapporto 2010″ dalla directory /tmp alla nostra home directory, possiamo avvalerci delle virgolette:
$ mv /tmp/"rapporto 2010" $HOME
oppure
$ mv /tmp/'rapporto 2010' $HOME
In questo caso possiamo usare un tipo oppure l’altro, a piacere.
C’è però una piccola differenza: con le virgolette doppie (double quote) le variabili di ambiente vengono espanse, mentre con le virgolette singole (quote) il carattere $ viene trattato tale e quale e quindi restituito in output. Vediamo un esempio per chiarire:
$ echo "La mia home directory è $HOME" La mia home directory è /home/spider
Oppure
$ echo 'La mia home directory è $HOME' La mia home directory è $HOME
Questo accade perché le virgolette singole effettuano l’escape di un maggior numero di caratteri: in effetti di tutti tranne che le virgolette stesse! Se dobbiamo avere in output una stringa che contenga le virgolette singole, quindi, come facciamo? Possiamo usare le virgolette doppie, poiché le une effettuano l’escape delle altre:
$ echo 'Il titolo del libro è "Il vecchio e il mare"' Il titolo del libro è "Il vecchio e il mare" $ echo "Il titolo del libro è 'Il vecchio e il mare'" Il titolo del libro è 'Il vecchio e il mare'







Ultimi commenti