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

时间:2013-08-23 15:43:05

标签: linux enter gnu-screen

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

screen -S nameofscreen -X stuff "command"

当我输入此内容时,该命令会在屏幕内输入,但不会执行。 所以我的问题是如何使用此命令按Enter键。

3 个答案:

答案 0 :(得分:4)

我会做这样的事情:

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

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

-X将允许您将输入发送到指定的会话 - 这就是您的命令未执行的原因。要执行它,您需要像Paul建议的那样添加输入符号。可以使用 Ctrl + v 然后输入来完成。这将产生^M。所以:

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

但是,它本身不会附加一个分离的会话。

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

bash shell中,您可以使用ctrl-V将不可打印的字符显式放入字符串中。因此,请在ctrl-V之前的命令末尾尝试ctrl-L ctrl-V ctrl-M "