11

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

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

我已经尝试了很多,例如screen -x(但它附加到现有的屏幕窗口之一;它不会创建新的,也不会启动新的外壳)。欢迎任何提示。

环境是 Linux (Ubuntu 12.04)。

4

3 回答 3

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不会持续很长时间(因此不会妨碍对该脚本的进一步调用)。

于 2012-05-15T12:38:39.973 回答
6

添加新的分离窗口sesion_name并运行command

screen -S sesion_name -x -X screen bash -c 'command; exec bash'
于 2016-06-26T22:39:11.463 回答
6

要选择要加入的窗口,请使用该-p选项。捐赠+将创建一个新的,因此您的命令很简单:

screen -x session_name -p +

这记录在手册页上:

-p n̲u̲m̲b̲e̲r̲_o̲r̲_n̲a̲m̲e̲|̲-̲|̲=̲|̲+̲

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. 
于 2017-03-04T19:06:24.777 回答