チェックインすると画面現在実行中のジョブ(ctrl / a + "
)について、次のようになります。
Num Name
0 -bash
1 -bash
2 -bash
...これは正しいです。通常、私のすべての画面ウィンドウでbashが実行されています。しかし、これは私が見たいものではありません。このウィンドウで実際に実行されたコマンドを見たいです。 ssh-ing、rsync-ing、ビルドスクリプトの実行など、何でも構いません。
Num Name
0 ssh to@this
1 rsync this./ [email protected]:/path
2 make world
今私が考える最善の考えは、新しいコマンドを実行するたびにbashが何とか画面プロセスと会話し、その瞬間に何が起こっているのかを理解する必要があるということです。たとえば、Unixパイプのデータグラムメッセージです。おそらくこれは達成するのは簡単ではないでしょう。
少なくとも似たようなものを手に入れることができますか?
答え1
短い答え:
次の行を追加します。
$HOME/.bashrc
4case "$TERM" in screen*) PROMPT_COMMAND='printf "\ek\e\\\\"' esac
次の行を追加
$HOME/.screenrc
shelltitle '$ | bash'
説明する:
screen
"<search pattern>|<window name>"
ウィンドウ名と<ESC>k<ESC>\
プロンプトの一部としてシーケンスを設定することでアクティブになるシェル固有の経験的な方法があります。2。
<ESC>k<ESC>\
画面は、前のコマンド名を消去して次のコマンドを準備するために使用されます。シェルから改行文字を受け取ると、プロンプトの終わりを検索します。screen
一致する文字列の後の最初の単語を取得し、コマンド名として使用します。
プロンプトの一部としてPROMPT_COMMAND='printf "\ek\e\\\\"'
設定するために使用されます。サブコマンド(ここでは機能しません)を<ESC>k<ESC>\
使用して追加して、メインウィンドウのタイトルを設定します。shelltitle
title
shelltitle '<end of prompt>|<default window name>'
新しい設定をロードしたら、実行windowlist
中のコマンドを表示する必要があります。
2.screen
動的タイトル:https://www.gnu.org/software/screen/manual/html_node/Dynamic-Titles.html#Dynamic-Titles
4. 類似の投稿:https://superuser.com/questions/244299/gnu-screen-how-to-update-dynamically-the-title-of-a-window
5.例shelltitle
:https://www.gnu.org/software/screen/manual/html_node/Title-Screenrc.html
追加:
3. 情報PROMPT_COMMAND
:https://www.gnu.org/software/bash/manual/html_node/Controlling-the-Prompt.html