実行時間のbash履歴を保存しますか?

実行時間のbash履歴を保存しますか?

bashの記録を維持できますか?総実行時間あなたが実行するすべてのコマンド?

つまり、すべてのコマンドが「時間」で始まり、結果がコマンドとともに履歴に​​保存されるようになりますか?

説明:コマンドが開始された時間のタイムスタンプを追加できることは既に知っていますが、知りたいと思いました。総実行時間、そして初めてだけではありません。

答え1

起動スクリプトでHISTTIMEFORMATを定義すると、bash履歴ファイルの各行にタイムスタンプが追加されます。この変数の値は、タイムスタンプを画面に印刷する方法(*)です。これは私のものです:

HISTTIMEFORMAT='%F-%T '

(*)を見てくださいman 3 strftime(なければman date問題は解決します)

答え2

wait3子プロセスの使用法はwait4ポインタstruct rusagewait4(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

関連情報