2

次のようなスクリプトhex.batがあります。

#!/bin/bash
HEX_ROOT=.
HEX_COLOURS=./data
HEX_PDB=.
HEX_MACROS=.
HEX_CACHE=./data

time ./hex6i.x64 -kill -nogui -ncpu 1 -ngpu 1 -e dock.mac -l job.log

job.log時間を除いて、すべての出力はになります。jog.logこのスクリプトを実行する時間を節約したいと思います。誰か手がかりはありますか?

前もって感謝します。

4

2 に答える 2

3

timeレポートを別の出力ストリームに配置するために、その出力を標準出力ではなく標準エラーに書き込みます。たとえば、時間出力をログに記録せずに、出力をファイルに書き込んでいるプログラムの時間を計りたい場合が一般的です。

時間出力をログに記録したい場合は、いくつかのオプションがあります。

  1. -oおよび-aのオプションを使用して、の出力をログファイルtimeに書き込みます。time実装timeには、これらのオプションがある場合とない場合があります。

  2. 標準エラーをリダイレクトします:time .... 2>> job.logまたは2>&1。前者は(追加を介して)同じログファイルに書き込みます。後者は、標準出力が送信される場所に標準エラー出力を送信します。timeどちらも、実行されるプログラムとtimeそれ自体に影響を与えることに注意してください。

于 2013-03-22T21:45:19.917 に答える
1

かっこを使用しました

#!/bin/bash
HEX_ROOT=.
HEX_COLOURS=./data
HEX_PDB=.
HEX_MACROS=.
HEX_CACHE=./data

(time ./hex6i.x64 -kill -nogui -ncpu 1 -ngpu 1 -e dock.mac -l job.log) &> job.log
于 2013-03-22T21:43:08.203 に答える