创建一个分离的屏幕,向它发送命令

时间:2016-04-10 18:20:18

标签: linux bash gnu-screen

我正在尝试做一些令人费解的事情。我想创建一个没有附加到它的屏幕会话(因为这最终将成为一个启动脚本),然后向会话发送一个bash命令。

我试图在新创建的会话中简单地echo Hello。屏幕会话创建正常,但回声从未发生过。鉴于以下示例,我希望最终附加到一个屏幕上,该屏幕的控制台上有“Hello”:

screen -mdS "Test" # Create a screen session, do not attach to it
screen -ls # Confirm that the Test screen session exists
screen -S "Test" -X "echo Hello^M" # Send a command through
screen -R # Reconnect - notice the command didn't execute

但是会话中根本没有任何内容 - echo没有被执行。任何指针都非常感激?!

2 个答案:

答案 0 :(得分:4)

正确的调用是

screen -S "Test" -X stuff 'echo Hello\r'

答案 1 :(得分:0)

尝试:

screen -S "Test" -X stuff 'echo "Hello"'`echo -ne '\015'`

stuff是一个屏幕命令:screen docs for stuff command

`echo -ne '\015'`表示按 Enter

我找到了这个解决方案:link