0

timeサブシェルを起動せずに、zsh で予約語を使用して複数のコマンドの時間を計る方法はありますか?

私はこれが機能することを知っています:

{ time (
    sleep 5
    sleep 3
    PROMPT='foobar> '
) }

ただし、括弧はサブシェルが作成されることを意味し、初期化された変数はエクスポートされません。

次のように、前後の変数をキャプチャできることを知っています

start=$(time)
# do something
end=$(time)
echo start - end | bc

ただし、アドホックなタイミングの場合、これは少し面倒です。

4

1 に答える 1

1

いいえ、time別のプロセスでしか作業できません。{ ... }したがって、次のようなビルトインでは機能しません。

time { ls }
time echo

子が既に存在する場合、出力をキャプチャするメソッドは機能しtimeないことに注意してください (コマンドを実行するときの時間も考慮されるため)。トラップがあり、対応するシグナルが発生する場合も同様です。

于 2014-11-29T22:40:45.407 に答える