从外部将输入发送到屏幕会话


18

我的情况是这样的:

我有一个在远程位置运行的屏幕会话。在此屏幕内是一个基于控制台的程序。在没有屏幕的情况下运行时,该程序在终端中启动,并在其标准输入上接受命令。

我想要的是一种将命令远程发送到屏幕,以便控制台程序接收该命令的方法。可能是这样的:

我的电脑-> SSH自动发送消息->屏幕会话->程序(收到运行命令)

因此,从远程PC,我可以通过SSH命令将其发送到将其发送到程序的屏幕。程序接受它们并执行它们。

Answers:


17

如果我理解正确,则希望将输入发送到在屏幕会话中运行的程序。您可以使用screen的stuff命令执行此操作。使用屏幕-X选项可以在屏幕会话中执行命令,而无需附加命令。

screen -S sessionname -p windowname -X stuff 'command1
command2
'

如果你想看到程序的输出,看hardcopyloglogfile命令。


已经尝试了stst命令,但它仅发送来自屏幕的命令。您会看到它仅接受与屏幕相关的命令,而不接受与程序相关的命令。
Luis Alvarado

@CYREX:stuff发送字符,就像您键入它们一样。您到底尝试了什么,预期的效果是什么,发生了什么?
吉尔(Gilles)“所以,别再邪恶了”,

我看到你有-p部分。我没有那个。添加了该部分,它现在正在发送命令,但是如何为每个命令按Enter?
Luis Alvarado

找到了。在引号前加上Addint $并让C像转义符一样。像这样的东西-X $“显示用户\ N”
路易斯·阿尔瓦拉多

@CYREX:-p如果有多个窗口,则是必需的(或至少是一个好主意)。要“按Enter”,只需在参数中加入换行符(即引号内)即可,就像我所做的那样。
吉尔(Gilles)'所以
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.