端末で実行されるほとんどのタスクは計算に時間がかかり、bashに最後に時間レポートを出力させたいと思います。すべてコマンドが端末に入力されます。このためにbashrcに追加できるものはありますか?
例:
$ find / -ls
<find / -ls return info>
start time = 10:21:54 | end time = 10:31:34 | time lapsed = 00:10:20
$
または
$ make all
<make all return info>
start time = 10:21:54 | end time = 10:31:34 | time lapsed = 00:10:20
cdなどのコマンドの例外リストを追加できればと思いますが、あまり気にしません。
ベストアンサー1
私は次のことを試しました.bashrc
。
echo -ne "$PS1"
while IFS= read -er line;do
eval "time $line"
echo -ne "$PS1"
done
これはおおよその目的を果たしますが、いくつかの注意事項があります。
- プロンプトが実際に破損しています(シェルは通常、
\W
プロンプトをエコーする前にプロンプトの同様のシーケンスを解釈します)。 - コマンドライン編集機能が失われます(例:CTRL+は利用できません)。L
clear
- 他にもいくつかあります。
私はシェル機能を通してこれを選択的に有効にするのが良い妥協だと思います。
timed_commands() {
[ "$1" = off ] && exec bash
PS1='$ ' # Put something simple here
while IFS= read -erp "$PS1" line;do
eval "time $line"
done
}
以下を使用して開閉timed_commands
します。timed_commands off
コメントをいただいた@jthillに感謝-e
しますread
。