EOF inesperado ao procurar correspondência '' '

2

Alguém poderia me explicar por que echo 'test \'hi\'' > test não funciona? Não escreve hi no arquivo test . As citações simples parecem ter escapado corretamente, não são?

Obrigado.

    
por Devator 19.03.2012 / 17:16

1 resposta

3

Você não pode incorporar aspas simples dentro de strings entre aspas simples. Em vez disso, você precisa colocar e escapar aspas simples fora da string citada.

Por exemplo:

echo 'test '\''hi'\' > test

Isso escreve:

  • test de 'test ' (com um espaço após a palavra test - o realce de sintaxe não está refletindo isso aqui ...)
  • passa \' para ser escrito como uma cotação literal
  • escreve hi de 'hi' .
  • passa \' para ser escrito como uma cotação literal
  • resulta em test 'hi' sendo gravado em um arquivo chamado test .
por 19.03.2012 / 17:27

Tags