Meu comando echo não aceita opções (echo -n ou echo -e)

2

Eu tenho uma declaração de eco no meu script, conforme abaixo:

echo -ne "Check Script";

Eu esperava que fosse impresso

Check Script

mas estou recebendo a saída abaixo

-ne Check Script

Mas quando executo o mesmo script em outra máquina, recebo a saída esperada. O que poderia ser variáveis ou propriedades específicas da máquina por causa das quais o script está se comportando de maneira diferente.

    
por g4ur4v 07.11.2012 / 16:58

1 resposta

7

Esse é o comportamento do POSIX e UNIX em conformidade com echo . Com uma conformidade com UNIX echo , você escreveria:

echo 'Check Script\c'

O melhor é não para usar o echo, mas o printf, que tem menos problemas de portabilidade.

printf %s 'Check Script'

Observe que o POSIX permite -n como uma extensão (mas com comportamento não especificado). echo -e significa -e\n , então, nesse sentido, bash e zsh não estão em conformidade com POSIX.

    
por 07.11.2012 / 17:04

Tags