最後のコマンドのウォールタイムをBashプロンプトに表示するにはどうすればよいですか? 質問する

最後のコマンドのウォールタイムをBashプロンプトに表示するにはどうすればよいですか? 質問する

最後のコマンドの経過時間をバッシュプロンプト?私は次のようなものを期待しています:

[last: 0s][/my/dir]$ sleep 10
[last: 10s][/my/dir]$

背景

私は長時間のデータ処理ジョブを頻繁に実行しますが、それらのジョブにかかった時間を知っておくと、将来のジョブにどれくらいの時間がかかるかを予測するのに役立ちます。非常に定期的なタスクの場合は、適切なログ記録技術を使用してこの情報を厳密に記録します。それほど正式ではないタスクの場合は、コマンドの前に を付けるだけですtime

timeすべての対話型コマンドを自動的に実行し、タイミング情報を 3 行ではなく数文字で印刷できれば便利です。

ベストアンサー1

これは、目的を達成するための最小限のスタンドアロン コードです。

function timer_start {
  timer=${timer:-$SECONDS}
}

function timer_stop {
  timer_show=$(($SECONDS - $timer))
  unset timer
}

trap 'timer_start' DEBUG
PROMPT_COMMAND=timer_stop

PS1='[last: ${timer_show}s][\w]$ '

おすすめ記事