コマンドの開始時にプロンプトにタイムスタンプを追加するにはどうすればよいですか?その間、どこかで解決策を探しています。静的プロンプトそして連続時計。
主な違いは、プロンプトがロードされると静的プロンプトが表示されることです。数分間そのままにしてからコマンドを入力したら、別のタイムスタンプを追加したいと思います。私の目標は、コマンドを実行するのにかかる時間とプロンプトがアイドル状態である時間の違いを簡単に確認できることです。 bashを使用したいという点を除いて、連続クロック応答の問題は、すべてをフラッシュするため、開始タイムスタンプを失うことです。
たとえば、新しいシェルを開くと、次のプロンプトが表示されます。
10:30:21 jeff ~ $
それでは、実際にコマンド入力を終了し、クリックする前にしばらくそのまま残っているとしましょう。Enter
10:30:21 jeff ~ 10:31:28 $ ./long_running.sh
10:36:52 jeff ~ $
実際にコマンドを実行したときを示す別のタイムスタンプが添付されています。次のプロンプトの開始タイムスタンプを除くと、コマンドの実行に約5分かかります。
答え1
各コマンドが実行される前に呼び出すことができる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
書き換えプロンプトはありませんが、各コマンドの前に内容がどのように出力されるかを確認できます。必要に応じてトラップ機能を複雑にすることができます。
答え2
チェックアウト時間bash_command_timer.sh
はです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 ]
彼の読書によると:
スクリプトのしくみの説明については、私のブログ投稿であるDEBUG TrapとPROMPT_COMMAND in Bashをご覧ください。