Diferença entre 'eco' e 'eco-e' [fechado]

25

Qual é a diferença entre echoe echo -e? Quais aspas ("" ou '') devem ser usadas com o comando echo? ou seja: echo "Print statement"ou echo 'Print statement'? Além disso, quais são as opções disponíveis que podem ser usadas junto echo?

Venkatesh
fonte
3
Que concha? echo -enão é definido pelo POSIX e provavelmente varia de acordo com o shell.
Jordanm 12/03
Isso responde sua pergunta? unix.stackexchange.com/questions/65803/…
dhag
2
use man echopara ler o manual para echo.
Nano
faz eco não executar os seus argumentos como comandos, ele apenas ... ecos-los
Anthon

Respostas:

33

echopor si só exibe uma linha de texto. Vai levar qualquer coisa dentro das "..."duas aspas a seguir , literalmente, e apenas imprimir como está. No entanto, echo -evocê está tentando echoativar interpretações de escapes de barra invertida. Então, com isso em mente, aqui estão alguns exemplos

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

Nota: \né uma nova linha, ou seja, um retorno de carro. Se você quiser saber quais outras seqüências são reconhecidas, echo -edigite man echoseu terminal.

3kstc
fonte
2
echoestá embutido na maioria das conchas. man echoirá gostar de documentar o echocomando autônomo.
Stéphane Chazelas
Você está descrevendo o comportamento do GNU echoou do shell GNU echoquando não está no modo de conformidade do Unix. Em outros lugares, o comportamento normalmente será diferente.
Stéphane Chazelas
3

Na maior parte do SHELL, echonão é possível executar a sequência de escape ( \n \t). Onde como echo -epode

echo -e " This is \n an \t example"

Aspas simples e duplas são principalmente para lidar com os problemas de interpolação. Você pode encontrar mais detalhes aqui: Por que o eco está ignorando meus caracteres de citação?

Govind Kailas
fonte
É o contrário. Na maioria dos shells (ksh88, ksh93, pdksh, mksh, Bourne, zsh, dash, bash e sh de todos os sistemas compatíveis com Unix, alguns deles como ksh93 ou bash apenas em alguns ambientes) echoexpandem as seqüências de escape. Uma echoimplementação que aceita -enão é compatível com POSIX.
Stéphane Chazelas