12

私は次のコマンドを実行しています(Ubuntuで)

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0

コマンドラインで結果を取得します

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

私は次のことを試しました:

time -a o.txt wget 'http://localhost:8080/upLoading.jsp' --timeout=0 

次のエラーが発生します

-a: command not found

結果をファイルにリダイレクトしたいのですが。どうやってやるの?

4

10 に答える 10

12

-aは、時間バイナリ(/ usr / bin / time)によってのみ理解されます。時間を使用する場合は、-aオプションを処理しないbash組み込みバージョンを使用しているため、コマンドとして実行しようとします。 。

/usr/bin/time -o foo.txt -a wget 'http://localhost:8080/upLoading.jsp' --timeout=0
于 2012-06-18T12:01:45.140 に答える
7

チェックman timeして、私はあなたが必要なものだと思います

time -o o.txt -a ...

( -aと-oの両方が必要であることに注意してください)。

[編集:] bashを使用している場合は、書き込みにも注意する必要があります

/usr/bin/time

(説明についてはマンページを確認してください)

于 2012-06-18T11:56:18.727 に答える
3

stdout文字を使用して、任意のコマンドの出力をファイルに送ることができます>。出力をファイルに追加するには、>>

明示的に行わない限り、へstderrの出力は引き続きコンソールに送られることに注意してください。両方を同じ出力ストリームに送るには stderrstdout

   command 2>&1 outfile.txt (with bash)

また

   command >& outfile.txt (with t/csh)

bash All about redirectionを使用している場合は、リダイレクトに関する詳細と制御が提供されます。

于 2012-06-18T11:55:53.720 に答える
1
\time 2> time.out.text command

\time -o time.out.text command

この回答は以前のコメントに基づいています。それが動作することがテストされています。\上の利点は、/usr/bin/のインストールディレクトリを知る必要がないことですtime

これらの回答は、他の出力ではなく、時間のみをキャプチャします。

于 2012-06-18T12:17:33.147 に答える
0

まさにfromGNUは、その出力をstderrtimeに書き込みます。ファイルにリダイレクトする場合は、次の--output=PATHパラメーターを使用できます。time

このhttp://unixhelp.ed.ac.uk/CGI/man-cgi?timeを参照してください

また、 stdoutをあるファイルにリダイレクトする場合は、> filenameファイルを作成して>> filename入力するか、最初のコマンドの後にあるファイルに追加するために使用できます。

stderrを自分でリダイレクトする場合は、次を使用できます。$ command >&2 your_stderr_output

于 2012-06-18T11:55:36.620 に答える
0

/usr/bin/time多くのシェルには独自の実装がtimeあり、同じフラグをサポートする場合とサポートしない場合があるため、使用してみてください/usr/bin/time

したがって、コマンドを次のように変更します

  /usr/bin/time -a -o foo.txt wget ....
于 2012-06-18T12:10:23.453 に答える
0

あなたのLANGはどうですか?

$ time -ao o.txt echo 1
bash: -ao: コマンドが見つかりません

real    0m0.001s
user    0m0.000s
sys     0m0.000s
$ export|grep LANG
declare -x LANG="ja_JP.utf8"

$ LANG=C time -ao o.txt echo 1
1

$ cat o.txt
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 1984maxresident)k
0inputs+0outputs (0major+158minor)pagefaults 0swaps
于 2016-01-31T10:09:19.137 に答える
0

試す:

command 2> log.txt

「コマンド」からのリアルタイム出力は、次のような別のコンソールウィンドウで確認できます。

tail -f log.txt
于 2016-03-07T18:21:46.573 に答える
0

これは私のために働いた:

( time command ) |& tee output.txt

https://unix.stackexchange.com/questions/115980/how-can-i-redirect-time-output-and-command-output-to-the-same-pipe

于 2018-01-23T15:45:27.530 に答える
-1

>出力をリダイレクトする場合は、を使用してこれを行うことができます。

例えば:

time wget 'http://localhost:8080/upLoading.jsp' --timeout=0 > output.txt 2>&1

2>&1STDERRを同じファイルにリダイレクトするように言います。

このコマンドは、output.txtファイルをすべて消去し、出力を使用して新しいファイルを作成します。使用する場合>>は、既存のoutput.txtファイルの最後に出力を追加します。存在しない場合は作成します。

于 2012-06-18T11:56:40.817 に答える