Citações e barra invertida

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

man bash diz:

Incluir caracteres entre aspas simples preserva o valor literal de cada caractere dentro das aspas. Uma aspas simples pode não ocorrer entre aspas simples, mesmo quando precedida por uma barra invertida.

Por que ele funciona no echocomando-então?

mook765
fonte

Respostas:

16

Aspas simples '...'são diferentes das aspas simples em dólar $'...'. O primeiro não suporta nenhuma barra invertida, enquanto o último usa a especificação ANSI C.

choroba
fonte
14

chorobaa resposta está totalmente correta, aqui estão os detalhes de man bash:

Palavras da forma $ 'string' são tratadas especialmente. A palavra se expande para
string, com caracteres de escape de barra invertida substituídos conforme especificado pelo ANSI C
padrão. Seqüências de escape de barra invertida, se presentes, são decodificadas da seguinte maneira:
              \ um alerta (sino)
              \ b backspace
              \ e
              \ E um caractere de escape
              \ f feed de formulário
              \ n nova linha
              retorno de carro
              guia horizontal
              \ v guia vertical
              \\ barra invertida
              \' citação única
              \" citação dupla
              \? ponto de interrogação
              \ nnn o caractere de oito bits cujo valor é o valor octal
                     nnn (um a três dígitos)
              \ xHH o caractere de oito bits cujo valor é o hexadecimal
                     valor HH (um ou dois dígitos hexadecimais)
              \ uHHHH o caractere Unicode (ISO / IEC 10646) cujo valor é o
                     valor hexadecimal HHHH (um a quatro dígitos hexadecimais)
              \ UHHHHHHHH
                     o caractere Unicode (ISO / IEC 10646) cujo valor é o
                     valor hexadecimal HHHHHHHH (um a oito dígitos hexadecimais)
              \ cx um caractere controle-x

É por isso!

mook765
fonte