`time echo`に出力がありません

`time echo`に出力がありません

私はMacを使用しており、コマンドを実行するのにかかる時間を計算しようとしています。

もし私がするなら

time echo

出力なし

しかし、私がそうするなら

time ls

それは私に時間関数の出力を与えます

なぜこれが起こるのかご存知ですか?

更新:これは私がzshを使用していてインストールしたためoh-my-zshに発生したことを示しています。 Bashではうまくいきますが、zshでは出力はありません。理由をご存知ですか?

答え1

zshでは、timeキーワードは組み込み機能(または他の同様のシェルの内部)には影響しません。 ~からこのメーリングリストの投稿:

追加の注:現在のシェルで実行されているすべての構成に適用される組み込み時間は自動的に無視されます。したがって、構文上のオープニングや繰り返しループなどを入れることは可能ですが、timeキーワードの直後にはタイミング統計は表示されません。サブシェルを強制的に実行して時間を測定するには、括弧を使用する必要があります。

$ time echo

$ time (echo)

( echo; )  0.00s user 0.00s system 51% cpu 0.001 total

答え2

time コマンドは echo コマンドを生成します。 zshではこれがシェルに組み込まれているため、外部バイナリは実行されません。 Bashでは、echoは/ bin / echoにあるechoバイナリを実行します。

簡単に言えば、zshにはechoが組み込まれており、bashはechoバイナリファイルからプロセスを生成します。

関連情報