代码之家  ›  专栏  ›  技术社区  ›  OTZ

如何判断当前终端会话是否在GNU屏幕中?

  •  14
  • OTZ  · 技术社区  · 16 年前

    .bashrc 仅当当前终端

    if [ -n "$WINDOW" ]; then
        command
    fi
    

    $WINDOW 可以在所有屏幕上定义,也可以不定义 托管会话。

    5 回复  |  直到 9 年前
        1
  •  18
  •   signine    16 年前

    检查环境变量$STY(包含关于屏幕的信息)或$TERM是否为'screen'(可能不太可靠)。

        2
  •  5
  •   rhlee    14 年前

    signine是对的

    看医生

    http://www.gnu.org/software/screen/manual/html_node/Environment.html

    STY

    备用套接字名称。如果 screen 猪圈 屏幕 而不是开始新的会话。

        3
  •  4
  •   mykhal    16 年前

    检查 $TERM ,设置为' screen

    或者,你可以利用在屏幕上, $TERMCAP 包含屏幕子字符串:

    [[ $TERMCAP =~ screen ]] && echo "in screen"
    

    更新2

    screen manual

        4
  •  2
  •   hrvoj3e    9 年前

    我想建议一个替代的解决方案,总是可见的,不需要检查,知道你是在一个系统中 screen

    只需添加/编辑一个文件 ~/.screenrc 在你的 $HOME 文件夹和添加 caption

    caption always "%{= kc}Screen session on %H (system load: %l)%-28=%{= .m} %Y-%m-%d %0c"
    

    你会得到最底层的一条线,它总是可见的和有色的。

    Screen session on host (system load: 1.50 1.40 1.30)        2017-04-23 14:06
    

    请注意:

    当您在host1上的屏幕内,打开另一个到host2的SSH会话,并在那里打开屏幕,该屏幕也具有 .screenrc 你将得到两行在底部堆叠从下往上(像一个包装)。

    这在那种情况下非常有用!

    Screen session on host2 (system load: 0.01 0.03 0.05) 2017-04-23 14:14 Screen session on host1 (system load: 0.00 0.00 0.00) 2017-04-23 14:14


    https://www.gnu.org/software/screen/manual/html_node/Caption.html

    Command: caption always|splitonly [string]

    https://www.gnu.org/software/screen/manual/html_node/String-Escapes.html#String-Escapes


    here 就这样。

        5
  •  1
  •   iniju    16 年前

    检查变量$TERM

    推荐文章