我想知道如何在屏幕会话中执行命令。我搜索了一下,发现了这个:
screen -S nameofscreen -X stuff "command"
当我键入此命令时,该命令在屏幕内键入,但未执行。所以我的问题是如何使用这个命令按回车键。
我想知道如何在屏幕会话中执行命令。我搜索了一下,发现了这个:
screen -S nameofscreen -X stuff "command"
当我键入此命令时,该命令在屏幕内键入,但未执行。所以我的问题是如何使用这个命令按回车键。
我会做这样的事情:
screen -S sessionName bash -c 'cmd; exec bash'
它开始一个新的会话执行cmd
并启动shell(否则它会放弃那个新的会话)。
-X
将允许您将输入发送到指定的会话——这就是您的命令没有执行的原因。要执行它,您需要像 Paul 建议的那样添加输入符号。可以用Ctrl+v然后完成Enter。那将产生那个^M
。所以:
screen -S sessionName -X stuff 'cmd^M'
然而,这本身不会附加一个分离的会话。
在 bash 中,您可以\n
在$'...'
构造中使用:
screen -S nameofscreen -X stuff $'command\n'
在bash
shell 中,您可以使用ctrl-V
显式地将不可打印的字符放入字符串中。因此,请尝试ctrl-V
ctrl-L
ctrl-V
ctrl-M
在"
.