現在のユーザーのセッション期間またはセッションの長さを計算する方法はありますか?
コマンドを使用してユーザーのログイン時間とアイドル時間を取得できることは知ってlast
いますが、ユーザーがログインしたときに時々計算するために実行できる直接コマンドまたは計算があります。
また、プロンプトにこのセッション期間情報を追加する方法。私はそれを使用export PS1
することが達成できることを知っていますが、入るパラメータは何でしょうか?
どんな助けでもありがたいです。ありがとう。
現在のユーザーのセッション期間またはセッションの長さを計算する方法はありますか?
コマンドを使用してユーザーのログイン時間とアイドル時間を取得できることは知ってlast
いますが、ユーザーがログインしたときに時々計算するために実行できる直接コマンドまたは計算があります。
また、プロンプトにこのセッション期間情報を追加する方法。私はそれを使用export PS1
することが達成できることを知っていますが、入るパラメータは何でしょうか?
どんな助けでもありがたいです。ありがとう。
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
関数を定義することで同じことを実行できます。ドキュメントを読んでください。
使用するシェルによって異なります。bash
で、パラメータの値は、SECONDS
現在のシェルが開始されてからの秒数です。