Answers:
在分离模式()中,使用适应终端大小()-S
的命名窗口(-t
)启动命名屏幕会话-A
(-d -m
):
screen -S mySessionName -t myWinName0 -A -d -m
-t
在同一屏幕会话(-S
)中启动另一个命名窗口():
screen -S mySessionName -X screen -t myWinName2
将一些命令(-X stuff $'cmds'
)塞入-p
会话(-S
)中的第一个命名窗口():
screen -S mySessionName -p myWinName0 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
将一些命令(-X stuff $'cmds'
)塞入-p
会话(-S
)中的第二个命名窗口():
screen -S mySessionName -p myWinName1 -X stuff $'echo myWinName1\necho cmd1\necho cmd2\n'
列出屏幕会话并重新连接以查看发生了什么:
screen -ls
screen -r mySessionName
注意:换行(\n
)模拟按Enter。您也可以使用分号来分隔命令。
内部屏幕:
:screen newcmd
运行newcmd
外:
screen -X testen "screen newcmd"
尝试了以上方法,但是第二个命令未在第二个窗口上执行。我通过使用窗口编号而不是窗口名称对示例进行了稍微调整:
建立会议
screen -S mySessionName -t 0 -A -d -m
创建第二个窗口
screen -S mySessionName -X screen -t 1
发送命令到第一个窗口
screen -S mySessionName -p 0 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
发送命令到第二个窗口
screen -S mySessionName -p 1 -X stuff $'echo myWinName0\necho cmd1\necho cmd2\n'
现在检查命令是否已经在第一个窗口上运行
screen -R mySessionName -p 0
现在检查命令是否已经在第二个窗口中运行
screen -R mySessionName -p 1
已在Screen 4.00.03(CENTOS 6.3 x64)上进行了测试。
screen -S sessionName -t windowName1 -Adm <command> && screen -S sessionName -X screen -t windowName2 -Adm <command2>