在 shell 提示中显示 GNU 屏幕会话名称和窗口标题

bra*_*zzi 13 bash prompt gnu-screen

有没有办法在 shell 的提示中显示 GNU Screen 会话名称和窗口标题(让我们说,由 定义的 Bash 提示PS1)?

Arc*_*ege 16

Screen 提供了一些环境变量(来自screen(1) 联机帮助页):

STY              Alternate socket name.
WINDOW           Window number of a window (at creation time).
Run Code Online (Sandbox Code Playgroud)

“在创建时”意味着如果您对窗口重新编号(使用 screen 的number命令),shell 不会被告知更改并且 $WINDOW 仍将与第一个窗口编号相同。

你可以使用类似的东西:

PS1='\u@\h(${STY}:${WINDOW}):\w$ '
Run Code Online (Sandbox Code Playgroud)


小智 5

我总是使用精确的屏幕会话名称。然后我可以将屏幕的 STY 环境变量添加到 PS1,并删除数字 id(感谢 dimo414)。我不会用花括号或任何东西来装饰它,因为我并不总是在会话中。简单的例子:

PS1='\u@\h ${STY#[0-9]*.} \w$ '
Run Code Online (Sandbox Code Playgroud)