qual é o significado do '%' apareceu no final da saída do comando Unix [duplicado]

1

Posso saber o que significa quando um '%' aparece no final da saída quando executo meu código?

Por exemplo:

Hello,World%

Adicionado:

Estou usando o shell Mac Os X iTerm2 zsh.

Meu código

echo 'Hello,World' | tr "\n" "
Hello,World%
0"

Eu adicionei o comando tr para me livrar da nova linha no final.

Estou usando o vim, portanto, quero obter a saída sem a nova linha, como se estivesse usando o emacs.

Obrigado.

    
por yfooi 10.08.2016 / 23:37

1 resposta

1

O % é seu prompt padrão.

Normalmente, isso aparecerá em uma linha própria

No entanto, isso depende do programa que você acabou de executar para terminar com um caractere LF. A maioria dos comandos faz isso automaticamente

por exemplo

% echo hello
hello
% 

No entanto, os comandos não têm para fazer isso. Nesse caso, seu prompt é adicionado ao final da linha:

% printf "hello"  
hello% 

No seu caso, você removeu o \n de sua saída com o comando tr e, portanto, o prompt aparece na mesma linha.

Podemos demonstrar isso executando seu comando duas vezes, na mesma linha:

% echo 'Hello,World' | tr "\n" "
% echo hello
hello
% 
0" ; echo 'Hello,World' | tr "\n" "
% printf "hello"  
hello% 
0" Hello,WorldHello,World%
    
por 11.08.2016 / 00:14