![为什么屏幕不显示当前正在运行的进程名称?(Mac OSX 终端 bash)](https://linux22.com/image/1212312/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%B1%8F%E5%B9%95%E4%B8%8D%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B%E5%90%8D%E7%A7%B0%EF%BC%9F%EF%BC%88Mac%20OSX%20%E7%BB%88%E7%AB%AF%20bash%EF%BC%89.png)
我正在 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 需要一个神奇的字符串来知道你的提示如何结束,这样它就可以拾取正在运行的命令。你可以改变它,但请参阅此页面上的说明以了解有关其工作原理的更多信息: