我有一个屏幕会话与几个窗口运行。 我想附加到它,在其中创build一个新的屏幕窗口,并在该新窗口中启动一个shell。
问题:如何从屏幕会话之外的命令行执行此操作?
我已经尝试了很多,例如screen -x
(但它附加到现有的屏幕窗口之一,它不会创build一个新的,也不会启动一个新的shell)。 任何提示,欢迎。
环境是Linux(Ubuntu 12.04)。
我在邮件列表上找到了一些东西,谢谢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
不会长时间的粘住(因此不会妨碍对这个脚本的进一步调用)。
将新的分离窗口添加到sesion_name
并运行command
screen -S sesion_name -x -X screen bash -c 'command; exec bash'
要选择要加入的窗口,请使用-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.