向分离屏幕发送命令不起作用

向分离屏幕发送命令不起作用

我正在尝试创建一个独立的屏幕,然后向其发送命令,但这似乎不起作用。

如果我输入以下命令:

$ screen -ls
No Sockets found in /var/run/screen/S-ec2-user.

$ screen -dmS myscreen
$ screen -ls
There is a screen on:
    9175.myscreen   (Detached)
1 Socket in /var/run/screen/S-ec2-user.

$ screen -S myscreen -X ls

然后我附加到屏幕上以查看命令是否执行:

$ screen -r myscreen

我得到的只是一个空白的命令行,好像什么都没发生一样。

有谁知道为什么会失败,以及我可以使用什么命令来真正让命令在屏幕内运行?

注意:如果可能的话,我希望与屏幕保持分离,只从外部向屏幕发送命令。这是因为我的计划是使用自动化方式(例如 bash 脚本)运行多个屏幕。

答案1

终于让它工作了。

看着screen一些使用的代码示例,似乎 -X 参数需要stuff实际命令之前有单词:,并且命令必须用双引号括起来(“xyz”)。

此外,要使命令运行,Enter必须同时发送击键。这篇关于插入特殊字符的文章Ctrl,我设法通过按+ V,输入了按键Enter

命令行如下所示:

$ screen -S myscreen -X stuff 'ls^M'

相关内容