私はコマンドの実行時間を測定し、time
コマンドの奇妙な動作を確認したいと思います。
time
マニュアルページの例で述べたように、-f
またはオプションを使用して呼び出したときにエラーが--format
発生しました。実行時間を測定する命令だcommand not found
と思いました...-f
user@laptop:~$ time -f '%e' sleep 1
-f: Befehl nicht gefunden.
次に、同じ行をもう一度呼び出してtime
。結果が変更され、期待どおりに機能しました(wtf?)。
user@laptop:~$ /usr/bin/time -f '%e' sleep 1
1.00
今混乱しています...which
助けることはできません:
user@pc:~$ which time
/usr/bin/time
そして...このオプションを使用しないと、フルパスがなくてもうまくいきます。
user@laptop:~$ time sleep 1
real 0m1.003s
user 0m0.001s
sys 0m0.002s
オプションを指定したい場合は、コマンドを正しく使用するにはどうすればよいですか?フルパスを使用するとうまくいくようですが、問題がある(または私が理解していないもの)の信頼できない副作用のように見えますか?
編集:私はUbuntu 14.04 LTSを使用しています(信頼できる)
答え1
Bash
という組み込みコマンドがありますtime
。したがって、入力したばかりtime
。したがって、マンページで説明されているオプションを使用するには、組み込みシェルではなくそのプログラムを呼び出す必要があります。これを達成する1つの方法は、フルパスを使用することです。-f
man time
-f
/usr/bin/time
(IMHO これはbashで本当に醜い)
詳しくは、質問の下のリンクをご覧ください。
答え2
Borisの回答で情報を表示する方法を追加すると思いました。
ちょうどまた時間が混乱していたかのように。
bashのtype
あなたの友人です。私はそれをもっと使うべきであることを本当に覚えておくべきです。古いcsh
習慣は死ににくいです。
which -a time
/usr/bin/time
type time
time is a shell keyword
type times
times is a shell builtin
type nslookup
nslookup is /usr/bin/nslookup