4

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

screen -S nameofscreen -X stuff "command"

当我键入此命令时,该命令在屏幕内键入,但未执行。所以我的问题是如何使用这个命令按回车键。

4

3 回答 3

5

我会做这样的事情:

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

它开始一个新的会话执行cmd并启动shell(否则它会放弃那个新的会话)。

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

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

然而,这本身不会附加一个分离的会话。

于 2013-08-23T16:14:44.547 回答
4

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

screen -S nameofscreen -X stuff $'command\n'
于 2013-08-23T16:14:47.687 回答
2

bashshell 中,您可以使用ctrl-V显式地将不可打印的字符放入字符串中。因此,请尝试ctrl-V ctrl-L ctrl-V ctrl-M".

于 2013-08-23T16:02:23.063 回答