Singlequote e barra rovesciata


10
~$ echo $'\'test'
'test

man bash dice:

Racchiudere i caratteri tra virgolette singole conserva il valore letterale di ciascun carattere tra virgolette. Tra virgolette singole non può verificarsi una virgoletta, anche se preceduta da una barra rovesciata.

Perché allora funziona nel echocomando?

Risposte:


16

Le virgolette singole '...'sono diverse dalle virgolette singole in dollari $'...'. Il primo non supporta alcun backslashing, mentre il secondo utilizza la specifica ANSI C.


14

chorobaLa risposta è totalmente corretta, qui i dettagli da man bash:

Le parole del modulo $ 'stringa' sono trattate in modo speciale. La parola si espande a
stringa, con caratteri di escape con barra rovesciata sostituiti come specificato da ANSI C
standard. Le sequenze di escape barra rovesciata, se presenti, sono decodificate come segue:
              \ a alert (campanello)
              \ b backspace
              \ e
              \ E un personaggio di fuga
              \ f feed form
              \ n nuova riga
              ritorno a capo
              \ t scheda orizzontale
              \ v scheda verticale
              barra rovesciata
              \ 'virgoletta singola
              \ "doppia citazione
              \? punto interrogativo
              \ nnn il carattere a otto bit il cui valore è il valore ottale
                     nnn (da una a tre cifre)
              \ xHH il carattere a otto bit il cui valore è esadecimale
                     valore HH (una o due cifre esadecimali)
              \ uHHHH il carattere Unicode (ISO / IEC 10646) il cui valore è il
                     valore esadecimale HHHH (da una a quattro cifre esadecimali)
              \ UHHHHHHHH
                     il carattere Unicode (ISO / IEC 10646) il cui valore è il
                     valore esadecimale HHHHHHHH (da una a otto cifre esadecimali)
              \ cx un carattere control-x

Ecco perchè!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.