Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 通过创建新屏幕窗口附加到“屏幕”会话_Linux_Shell_Gnu Screen_Detach - Fatal编程技术网

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

Linux 通过创建新屏幕窗口附加到“屏幕”会话,linux,shell,gnu-screen,detach,Linux,Shell,Gnu Screen,Detach,我有一个屏幕会话运行几个窗口。我想附加到它,在其中创建一个新的屏幕窗口,并在新窗口中启动一个shell 问题:如何在屏幕会话之外从命令行执行此操作 我已经试过很多了。Gscreen-x,但它连接到一个现有的屏幕窗口;它不会创建新的shell,也不会启动新的shell。欢迎任何提示 环境是Linux Ubuntu 12.04。我在邮件列表中找到了一些东西,谢谢你,星期二: 我现在这样做: #!/bin/bash screen -X screen -t NEWWINDOW # create new

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

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

我已经试过很多了。Gscreen-x,但它连接到一个现有的屏幕窗口;它不会创建新的shell,也不会启动新的shell。欢迎任何提示


环境是Linux Ubuntu 12.04。

我在邮件列表中找到了一些东西,谢谢你,星期二:

我现在这样做:

#!/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秒


My.bash_别名正在延迟更改屏幕窗口标题,因此笨拙的NEWWINDOW不会持续很长时间,因此不会妨碍对该脚本的进一步调用。

将新分离的窗口添加到sesion_名称并运行命令


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

screen -x session_name -p +
手册页上记录了这一点:

-p n̲u̲m̲b̲e̲r̲u o̲r̲n̲a̲m̲eӠ̲ӠӠ=̲ӠӠ̲+̲

预选一个窗口。当您要重新附着到某个对象时,这非常有用 特定windor或您希望通过-X选项发送命令 指向特定窗口。与屏幕的选择命令一样,-选择 空白的窗户。作为重新附着的特殊情况,=将显示 空白窗口上的窗口列表。
似乎没有标准的方法。你可以在搜索栏中搜索,我会接受这个答案,因为我在那里找到了一些东西,谢谢!:@如果你找到了一个合适的答案,请自己贴出来。如果答案正确,你可以在一段时间后接受自己的答案。此外,我还很好奇:p我从邮件列表中得到的窍门是screen-X other。看看这个。它建议使用一个会话命令文件,即包含所有命令(如screen、select和other)的文件,并运行screen-xsourcesessionfile,而不是多次调用screen-X。很好的方法我只调用了screen-X两次…但是如果脚本增长了,会话命令文件方法确实值得一看:是的,你是对的,我只是指出了它,因为我发现它很整洁。我再次查看了我的手册页版本4.00.03jw4,发现只有-p编号或名称,而不是|-|=|+。然后我查看了稍新的版本4.01.00devel,找到了您的概要行。令人困惑的是,您粘贴的文本来自旧版手册页,没有描述关于+的任何内容,而在我的测试中,新版手册页有这个额外的文本描述+:…而a+将创建一个新窗口。如果找不到指定的窗口,将不执行该命令。所以这是一个新的选择!谢谢你指出这一点,我认为它解决了我的问题。
screen -x session_name -p +