通过创建新的屏幕窗口附加到“屏幕”会话

时间:2012-05-15 11:28:41

标签: linux shell gnu-screen detach

我有一个运行多个窗口的屏幕会话。我想附加它,在其中创建一个新的屏幕窗口并在新窗口中启动一个shell。

问题:如何从屏幕会话外的命令行执行此操作?

我已经尝试了很多,e。 G。 screen -x(但它附加到现有的一个屏幕窗口;它不会创建一个新的窗口,也不会启动一个新的shell)。任何提示都是受欢迎的。

环境是Linux(Ubuntu 12.04)。

3 个答案:

答案 0 :(得分:6)

我在邮件列表上找到了一些内容,谢谢tuxuday:)

我现在这样做:

#!/bin/bash
screen -X screen -t NEWWINDOW  # create new window (switches existing attached terminal)
sleep 0.1
screen -X other  # switch existing attached terminal back to its old window
sleep 0.1
gnome-terminal -e 'screen -x -p NEWWINDOW'  # connect to new window

我不确定那些睡眠,也许它们并非在所有环境中都是必需的,但我可以轻松地等待那些0.2秒。

我的.bash_aliases正在更改屏幕窗口标题,因此笨拙的NEWWINDOW将不会长时间停留(因此不会阻碍对此脚本的进一步调用)。

答案 1 :(得分:4)

将新的分离窗口添加到command并运行screen -S sesion_name -x -X screen bash -c 'command; exec bash'

{{1}}

答案 2 :(得分:3)

要选择要加入的窗口,请使用-p选项。给+创建一个新的,所以你的命令就是:

screen -x session_name -p +

这在手册页中有记录:

  

-p number_or_name | - | = | +

     
Preselect a window. This is useful when you want to reattach to a  
specific windor or you want to send a command via the "-X" option  
to a specific window. As with screen's select commant, "-" selects  
the blank window. As a special case for reattach, "=" brings up the  
windowlist on the blank window.