“屏幕”指的是
How to reconnect to a disconnected ssh session中提到的程序.这是一个很好的设施.
但我有一个问题,我真的很想知道.我如何知道自己是否在“屏幕”内运行?不同之处是:
>如果是,我知道我可以安全地关闭当前终端窗口,例如关闭PuTTY窗口,而不会丢失我的shell(Bash等)会话.
>如果不是,我知道在关闭终端窗口之前我必须处理任何待处理的工作.
解决方法
(在StackOverflow上从“
How can I tell whether I’m in a screen?”上偷走并由用户
jho编写.P.S.您不能在StackExchange网站上投票支持复制.)
检查$STY.如果它为空,那么你就是一个“真正的”终端.如果它包含任何内容,那么它就是您所在屏幕的名称.
如果你不在屏幕上:
eric@dev ~ $echo $STY eric@dev ~ $
如果你在屏幕上:
eric@dev ~ $echo $STY 2026.pts-0.ip-10-0-1-71
如果您使用tmux而不是屏幕,也请检查$TMUX.要将此添加到您的提示中,请将以下内容添加到〜/ .bashrc:
if [ -n "$STY" ]; then export PS1="(screen) $PS1"; fi if [ -n "$TMUX" ]; then export PS1="(tmux) $PS1"; fi