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

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

我正在 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}'
$

正如您所见,我确实有一行将当前进程名称显示为屏幕中的标题:

shelltitle "$ |what?" # make screen assign window titles automatically

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

我遗漏了什么?“$ |something-else”如何工作?

答案1

您的 bash 提示符设置为何(即 PS1 变量)?

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

export PS1='\[\033k\033\\\]\u@\h:\w\$ '

在你的.screenrc中:

shelltitle "$ |bash:"

这就是我所拥有的,它可以工作。基本上,screen 需要一个神奇的字符串来知道你的提示如何结束,这样它就可以拾取正在运行的命令。你可以改变它,但请参阅此页面上的说明以了解有关其工作原理的更多信息:

相关内容