为什么屏幕没有显示当前正在运行的进程名称?(Mac OSX 终端 bash)

arn*_*nab 7 terminal bash gnu-screen macos

我在 Mac OSX 终端应用程序 (bash) 中运行屏幕。

这是 screenrc (从这里得到的):

$ cat ~/.screenrc 
termcapinfo xterm* ti@:te@
startup_message off
defutf8 on
shelltitle "$ |what?" # make screen assign window titles automatically
hardstatus alwayslastline
hardstatus string '%{= kw} [ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %m/%d/%y/ %C %A %{w}]%{w}'
$
Run Code Online (Sandbox Code Playgroud)

可以看出,我确实有一行将当前进程名称显示为屏幕中的标题:

shelltitle "$ |what?" # make screen assign window titles automatically
Run Code Online (Sandbox Code Playgroud)

但在屏幕内我只看到“什么?” (默认)而不是进程名称。这表明“$”不起作用。

我错过了什么?“$ |something-else”是如何工作的?

小智 5

您的 bash 提示设置为什么(即 PS1 变量)?

在您的.bashrc或尝试以下操作.profile

export PS1='\[\033k\033\\\]\u@\h:\w\$ '
Run Code Online (Sandbox Code Playgroud)

并在您的 .screenrc 中:

shelltitle "$ |bash:"
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的并且有效。基本上, screen 需要一个魔术字符串来知道您的提示如何结束,以便它可以选择正在运行的命令。您可以更改它,但请参阅此页面上的说明以了解有关其工作原理的更多信息: