echo -n não introduz nada, mesmo que o echo não tenha parâmetros

0

No terminal, digitar echo -n não produzirá nada, se o eco não tiver parâmetros, então por que usar o parâmetro -n não faz nada no eco? Nota: Fazer algo como echo nil -n nil funcionará e produzirá nil -n nil , portanto, se echo mostrar tudo, então por que ele não gera -n , ele deve produzir -n sem fazer nada.

    
por Star OS 21.09.2015 / 11:19

2 respostas

5

Por padrão, echo acrescenta um caractere de nova linha à sua saída, portanto, se você emitir o eco sem nenhum parâmetro, a saída não será nada, seguida por uma nova linha.

A opção -n significa 'não exibe a nova linha à direita'. Portanto, quando você emite echo -n , ele usa a -n como opção e não produz nada sem uma nova linha. Isso não deixará evidência de saída no display.

Se você usar uma letra que não seja uma opção válida para echo , como '-x', ela será impressa na tela, com uma nova linha normalmente. Se você usar -n dentro de outra entrada, ela não será lida como uma opção, portanto, será impressa normalmente.

    
por Arronical 21.09.2015 / 11:29
2

Para adicionar Arronical 's answer , echo não suporta -- , que é a convenção padrão para declarar "Este é o fim das opções / flags, considere tudo o que segue como argumentos."

O% GNUecho pode ser feito para gerar -n usando

echo -e "\e--n"

Em zsh , echo é um shell interno e echo - -n faz o trabalho.

    
por Mahesh 21.09.2015 / 12:12