bashの記録を維持できますか?総実行時間あなたが実行するすべてのコマンド?
つまり、すべてのコマンドが「時間」で始まり、結果がコマンドとともに履歴に保存されるようになりますか?
説明:コマンドが開始された時間のタイムスタンプを追加できることは既に知っていますが、知りたいと思いました。総実行時間、そして初めてだけではありません。
答え1
起動スクリプトでHISTTIMEFORMATを定義すると、bash履歴ファイルの各行にタイムスタンプが追加されます。この変数の値は、タイムスタンプを画面に印刷する方法(*)です。これは私のものです:
HISTTIMEFORMAT='%F-%T '
(*)を見てくださいman 3 strftime
(なければman date
問題は解決します)
答え2
wait3
子プロセスの使用法はwait4
ポインタstruct rusage
(wait4(2)
)。下にバッシュソースコード、私達は次を発見します:
$ egrep -r 'wait[34][[:blank:]]*\(' .
./jobs.c: wait3 ((union wait *)statusp, options, (struct rusage *)0)
./jobs.c: wait3 (statusp, options, (struct rusage *)0)
./jobs.c: wait3 (statusp, options, (int *)0)
$
スペースは、(struct rusage *)0
リソース使用量が返金されないことを意味しますbash
。検索struct rusage
はのtime_command
機能として表示され、execute_cmd.c
以下を使用して使用情報を収集するように表示されます。getrusage(2)
。しかし、これは組み込みのTIMEFORMAT
ため、time
履歴コードと交差しないようです。パッチを適用しない場合は、すべてを実行し、いくつかのファイルの標準エラーに表示される時間情報をキャプチャするなどbash
の問題を解決する必要があるようです。time