0

ビルトインのbashを使用してtime、コマンドの実行にかかる時間を測定しようとしています。

問題は、timedコマンドからリターンコードを取得することです。調べた後

help time

時間は常に0を返し、実行されたコマンドの戻りコードではないようです。時限コマンドのリターンステータスを取得する方法はありますか?

4

3 に答える 3

3

man time私に与えます:

プログラムが正常に終了した場合、time の戻り値は、実行および測定されたプログラムの戻り値です。それ以外の場合、戻り値は 128 にプログラムを停止または終了させたシグナルの番号を加えたものです。

shell-builtin があることに注意してくださいtime/usr/bin/time

/usr/bin/time false
/usr/bin/time true

適切な (1 と 0) エラー コードを教えてください。

于 2012-10-18T09:26:23.567 に答える
1
time lsa
-bash: lsa: command not found

real    0m0.001s
user    0m0.000s
sys 0m0.000s

echo $?
127

time ls
aa.aa

real    0m0.564s
user    0m0.000s
sys 0m0.001s

echo $?
0

失敗したら127

于 2012-10-18T11:26:48.227 に答える
1

確認したところ、とhelp timeのヘルプメッセージが表示されますtimetimes

為にtime

Exit Status:
The return status is the return status of PIPELINE.

為にtimes

Exit Status:
Always succeeds.

読み間違える可能性はありますか?

于 2012-10-18T09:50:25.267 に答える