11/08/2008
A cosa serve il carattere backtick (`) in Windows PowerShell?
Il carattere backtick (`) ha una duplice funzionalità all'interno degli script di Windows PowerShell. Innanzitutto tale carattere permette di organizzare una singola riga di codice in più righe, rendendola più leggibile: il parser, infatti, quando rileva un backtick alla fine di una linea di codice considera la linea successiva come un'estensione della prima. I lettori con esperienza in Visual Basic (e derivati) noteranno sicuramente una notevole somiglianza con il carattere underscore (_), utilizzato in questo linguaggio con il medesimo scopo.
Grazie al backtick è quindi possibile spezzare un blocco di codice così:
Get-ChildItem `
| Sort-Object Name
Cosa che altrimenti non avrebbe sortito i risultati desiderati.
PowerShell estende una riga alla successiva anche nel caso in cui l'ultimo carattere della riga sia un pipe (|), un apice singolo (') o doppo (") che non ne chiuda uno di già aperto o una virgola (,) ma ognuno di questi caratteri ha un utilizzo specifico che va al di là della mera estensione della riga corrente in quella successiva, come invece avviene per il backtick.
Il backtick ricopre inoltre il ruolo di carattere di escape, utilizzato per applicare una formattazione ad una stringa; proprio come il carattere backslash (\) nei linguaggi derivati dal C consente di inserire delle varianti durante la formattazione delle stringhe, così anche il backtick - entro certi limiti - consente di specificare, per esempio una nuova linea o una tabulazione tra due parole nella stessa stringa.
Out-Host "Hello`nWorld"
Produce questo output:
Hello
World
Come anticipato, i codici di escape di backtick sono limitati rispetto a quelli del backslash nei linguaggi derivati dal C, sia nel numero che nelle funzionalità. Di seguito una tabella riepilogativa di tutti i codici di escape supportati da backtick:
| Sequenza |
Effetto |
| `n |
Nuova linea |
| `t |
Tabulazione |
| `r |
Ritorno di carrello |
| `a |
Beep |
| `b |
Backspace |
| `0 |
Null |
| `' |
Apice singolo |
| `" |
Apice doppio |