16

「time」コマンドを実行の前に明示的に付けるのを忘れることがよくあります。理想的には、次のシェルプロンプトで、最後のコマンドが(すべてのコマンドで)どれだけのリアルタイム時間を要したかを確認します。

私はすでに bash のドキュメントを精査しましたが、関連するものは見つかりませんでした。

4

2 に答える 2

12

あなたはこれを行うことができます:

$ bind '"\C-j": "\C-atime \C-m"'

またはこれをあなたの~/.inputrc:に入れてください

"\C-j": "\C-atime \C-m"

次に、実行する場合は、入力して、の代わりに+を押しtime sleep 1ます。sleep 1CtrlJEnter

bindコマンド(または.inputrcファイル)でとをj交換することはお勧めしません。m押すたびEnterに追加されますが、timeこれはかなり煩わしく、複数行のコマンドを入力するときにエラーが発生する可能性があります。

これをに追加し~/.bashrcて、出力をtimeよりコンパクトにすることができます。

export TIMEFORMAT='r: %R, u: %U, s: %S'

(ここでの私の答えに似ています。)

于 2009-07-24T13:06:05.267 に答える
10

別のstackoverflowスレッドは、本質的に同じ質問をカバーしています。そのスレッドでの私の答えは次のように要約できます。

trap 'SECONDS=0' DEBUG
export PS1='your_normal_prompt_here ($SECONDS) # '

...秒数を整数で表示するには、または:

seconds2days() { # convert integer seconds to Ddays,HH:MM:SS
    printf "%ddays,%02d:%02d:%02d" $(((($1/60)/60)/24)) \
    $(((($1/60)/60)%24)) $((($1/60)%60)) $(($1%60)) |
    sed 's/^1days/1day/;s/^0days,\(00:\)*//;s/^0//' ; }
trap 'SECONDS=0' DEBUG
PS1='other_prompt_stuff_here ($(seconds2days $SECONDS)) # '

.. "Ddays、HH:MM:SS"の場合、先頭の空の値が削除されます。

于 2010-04-28T21:23:11.583 に答える