2012-03-15 10 views
12

私はいくつかの小さな.cプログラムの実行時間を測定するためにgnu時間を使いたかったのです。Gnuの時刻と書式設定の出力

-f FORMAT, --format FORMAT 
Use FORMAT as the format string that controls the output of time. See the below more information. 

はその後の例で我々が持っている:男性では次のことが書かれている

To run the command `ls -Fs' and show just the user, system, and total time: 
time -f "%E real,%U user,%S sys" ls -Fs 

をしかし、私は例からこのコマンドを発行しようとすると、私が手:

time -f '%E real,%U user,%S sys' ls -Fs 
-f: command not found 

real 0m0.134s 
user 0m0.084s 
sys  0m0.044s 

私はどこに問題があるのだろうと思っています。私はどこでミスをしていますか?私はちょうどユーザーの時間を表示したい、それはなぜ私は時間の出力形式でおもしろいです。

答えて

12

1つのBashにはシェル組み込みのtimeがあります。それを越えるための1つの方法は、/usr/bin/timeと入力することです。別の方法はalias time=/usr/bin/timeです。一方、組み込みのbashは環境変数TIMEFORMATを尊重しています。

+0

すぐにお返事ありがとうございます、私はTIMEFORMATを使用しますが、それらのすべてが動作します。 – Andna

+1

'/ usr/bin/time'はいくつかのシステム(例えばNixOS)では利用できませんが、' command time ... 'はbashの組み込みを避ける方法として働いています。 – Warbo

+0

重要な点は、 'command'はPOSIXで定義されたシェルユーティリティであるため、shと' sh 'の役割を果たすことができるもの( 'bash'と' ksh'を含む)で利用できるはずです。ここで述べたとおり、https://stackoverflow.com/questions/6365795/invoking-program-when-a-bash-function-has-the-same-name – minopret

関連する問題