1

現在のユーザーのセッション期間またはセッションの長さを計算する方法はありますか?

コマンドを使用してユーザーのログイン時間とアイドル時間を取得できることは知ってlastいますが、ユーザーがログインしたときに時々計算するために実行できる直接コマンドまたは計算があります。

また、プロンプトにこのセッション期間情報を追加する方法。私はそれを使用export PS1することが達成できることを知っていますが、入るパラメータは何でしょうか?

どんな助けでもありがたいです。ありがとう。

4

2 に答える 2

2

Bashでこれを行う最も簡単な方法は、これを.bashrcに追加することです。

PS1="\$SECONDS $PS1"

PS1を動的に設定するなど、PS1でエキゾチックなことをまだ行っていないと仮定しますPROMPT_COMMAND$SECONDS毎回評価されるようにするには、前に円記号が必要です。$PS1(一重引用符を使用することもできますが、毎回評価する必要はおそらくありません。)

これにより、セッションが存在した秒数を表す裸の数値が得られます。より洗練されたフォーマットの場合は、もう少し手間をかける必要があります。例えば:

PROMPT_COMMAND='SESSIONTIME=$(printf "%02d:%02d:%02d" $(($SECONDS / 3600)) $(($SECONDS / 60 % 60)) $(($SECONDS % 60)))'
PS1="\$SESSIONTIME $PS1"

他のシェルにはがありますがSECONDS、ありませんPROMPT_COMMAND。たとえば、zshでは、precmd関数を定義することで同じことを実行できます。ドキュメントを読んでください。

于 2013-03-12T16:00:30.867 に答える
0

使用するシェルによって異なります。bashで、パラメータの値は、SECONDS現在のシェルが開始されてからの秒数です。

于 2013-03-12T15:36:50.777 に答える