'time echo' não obteve saída

3

Estou usando o Mac e estou tentando sincronizar a execução do comando.

Se eu fizer

time echo

não tem saída

Mas se eu fizer

time ls

me dá a saída da função time

Alguma idéia de por que isso acontece?

Atualização: acontece que estou usando o zsh, com oh-my-zsh instalado. Ele funciona bem no bash, mas nenhuma saída no zsh. Alguma ideia do porquê?

    
por songyy 01.03.2018 / 04:25

2 respostas

6

Em zsh, a palavra-chave time não tem efeito em builtins (ou outras construções internas semelhantes a shell). De este post da lista de discussão :

Additional note: The time builtin applied to any construct that is executed in the current shell, is silently ignored. So although it's syntactically OK to put an opening curly or a repeat-loop or the like immediately after the time keyword, you'll get no timing statistics. You have to use parens instead, to force a subshell, which is then timed.

$ time echo

$ time (echo)

( echo; )  0.00s user 0.00s system 51% cpu 0.001 total
    
por 01.03.2018 / 05:00
-2

O comando time gerará o comando echo. Sob o zsh isso é embutido no shell, portanto não há um binário externo sendo executado. Sob bash, echo executará o binário de eco localizado em / bin / echo.

Então, em resumo, o zsh tem o eco embutido, o bash irá gerar um processo a partir do binário de eco.

    
por 01.03.2018 / 04:35