コマンドの実行時にプロンプ​​トを表示するには?

コマンドの実行時にプロンプ​​トを表示するには?

コマンドの開始時にプロンプ​​トにタイムスタンプを追加するにはどうすればよいですか?その間、どこかで解決策を探しています。静的プロンプトそして連続時計

主な違いは、プロンプトがロードされると静的プロンプトが表示されることです。数分間そのままにしてからコマンドを入力したら、別のタイムスタンプを追加したいと思います。私の目標は、コマンドを実行するのにかかる時間とプロンプトがアイドル状態である時間の違いを簡単に確認できることです。 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をご覧ください。

関連情報