Eu acho que você está usando zshcomo seu shell? É um indicador de que a saída do programa não terminou com uma nova linha. É impresso por zsh, não pelo programa. O programa funciona bem.
Supõe-se que cada programa imprima uma nova linha no final de sua saída. Isso permite que o próximo programa comece a imprimir com segurança a próxima linha - como, por exemplo, o prompt, no caso de shells. Segue um exemplo com bash:
gronostaj:~# echo test
test
gronostaj:~#
echoirá, por padrão, adicionar uma nova linha no final. Você pode suprimir isso com -ne aqui está o resultado, novamente em bash:
gronostaj:~# echo -n test
testgronostaj:~#
Isso não é muito legal. A suposição sobre a saída terminar com uma nova linha não estava correta e o prompt é concatenado no final da saída anterior.
Em zsh, o 2º exemplo ficaria assim:
➜ echo -n test
test%
➜
zshimprime o %caractere para indicar que uma falta de nova linha foi detectada e o anexa para você evitar quebrar o prompt. Não é o eco que imprime, mas o shell.
Eu acho que você está usando
zsh
como seu shell? É um indicador de que a saída do programa não terminou com uma nova linha. É impresso porzsh
, não pelo programa. O programa funciona bem.Supõe-se que cada programa imprima uma nova linha no final de sua saída. Isso permite que o próximo programa comece a imprimir com segurança a próxima linha - como, por exemplo, o prompt, no caso de shells. Segue um exemplo com
bash
:echo
irá, por padrão, adicionar uma nova linha no final. Você pode suprimir isso com-n
e aqui está o resultado, novamente embash
:Isso não é muito legal. A suposição sobre a saída terminar com uma nova linha não estava correta e o prompt é concatenado no final da saída anterior.
Em
zsh
, o 2º exemplo ficaria assim:zsh
imprime o%
caractere para indicar que uma falta de nova linha foi detectada e o anexa para você evitar quebrar o prompt. Não é o eco que imprime, mas o shell.