如何在屏幕会话中执行命令

我想知道如何在屏幕会话中执行一个命令。 我search了,我发现这个:

screen -S nameofscreen -X stuff "command" 

当我input这个命令的时候,这个命令是在屏幕上input的,但是不会被执行。 所以我的问题是如何使用这个命令按下input。

bash shell中,您可以使用ctrl-V将不可打印的字符显式放入字符串中。 所以尝试按ctrl-V ctrl-L ctrl-V ctrl-M在你的命令结束之前"

我会做这样的事情:

 screen -S sessionName bash -c 'cmd; exec bash' 

它开始一个新的会话执行cmd并启动shell(否则它会删除该新的会话)。

-X将允许你发送输入到指定的会话 – 这就是为什么你的命令没有执行。 要执行它,你需要添加像保罗建议的输入符号。 可以使用Ctrl + VEnter键完成 。 那会产生那个^M 所以:

 screen -S sessionName -X stuff 'cmd^M' 

这本身不会附加一个独立的会议。

在bash中,可以在$'...'构造中使用\n

 screen -S nameofscreen -X stuff $'command\n'