我想知道如何在屏幕会话中执行命令。 我搜索了一下,发现了这个:
screen -S nameofscreen -X stuff "command"
当我输入此内容时,该命令会在屏幕内输入,但不会执行。 所以我的问题是如何使用此命令按Enter键。
答案 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
"
。