コマンドの開始時にプロンプトにタイムスタンプを追加するにはどうすればよいですか? 静的プロンプト と 連続クロック の中間の解決策を探しています。
主な違いは静的プロンプトであり、プロンプトがロードされた時刻が表示されます。数分間そのままにしてからコマンドを入力すると、別のタイムスタンプを追加する必要があります。私の目標は、コマンドの実行にかかる時間差と、プロンプトがアイドル状態になっている時間を簡単に確認できるようにすることです。 bashを使用したいという事実は別として、連続クロックの回答の問題は、全体を更新するため、開始タイムスタンプが失われることです。
たとえば、新しいシェルを開くと、プロンプトは次のようになります。
10:30:21 jeff ~ $
次に、実際にコマンドの入力を終了してヒットする前に、1分間そこにとどまっているとしましょう。 Enter
10:30:21 jeff ~ 10:31:28 $ ./long_running.sh
10:36:52 jeff ~ $
実際にコマンドを実行した時期を示す別のタイムスタンプが追加されていることに注意してください。また、次のプロンプトの開始タイムスタンプから減算すると、コマンドの実行に約5分かかったことが簡単にわかります。
すべてのコマンドが実行される前に呼び出すことができるDEBUGトラップがあります
例えば
trap 'echo -e "\nStarted at: $(date)\n"' DEBUG
だから私がそれをするなら:
$ trap 'echo -e "\nStarted at: $(date)\n"' DEBUG
$ pwd
Started at: Thu Aug 18 11:59:33 EDT 2016
/home/sweh
$ echo hello
Started at: Thu Aug 18 11:59:35 EDT 2016
hello
$ sleep 100
Started at: Thu Aug 18 11:59:37 EDT 2016
プロンプトを書き直すわけではありませんが、すべてのコマンドの前に出力するように作成する方法を確認できます。トラップ機能は必要に応じて複雑にすることができます。
bash_command_timer.sh
by jichu4n
をチェックしてください。
https://github.com/jichu4n/bash-command-timer/
自分の.bashrc
を変更して、完全な日付を含めました。
# https://github.com/jichu4n/bash-command-timer
. bin/bash_command_timer.sh
export BCT_TIME_FORMAT='%Y-%m-%d %H:%M:%S'
出力:
$ echo 1; echo 2; echo 3
1
2
3
[ 0s031 | 2017-09-18 17:30:29 ]
彼のREADMEによると:
スクリプトがどのように機能するかの説明については、私のブログ投稿をチェックしてください:BashのDEBUGトラップとPrompt_COMMAND。