在新屏幕窗口中运行命令

问题描述 投票:0回答:1

我有一个小问题。我要创建一个新屏幕,然后自动运行echo 'You are using screen'。我试过了,但是不起作用:

[root@test ~]# screen -S screen_name -X echo 'You are using screen'
No screen session found.

您对此有任何解决方案吗?

gnu-screen
1个回答
0
投票

根据错误消息,您似乎没有尝试将echo命令发送到该会话之前创建名为“ screen_name”的屏幕会话。请尝试以下命令序列。

首先,创建一个名为“ screen_name”的屏幕会话。为了方便起见,还请指定-d -m选项以分离模式启动此会话,以便您可以立即继续运行更多命令,而不必脱离新的会话。

[root] screen -S screen_name -d -m

检查新会话是否确实存在:

[root] screen -ls
There is a screen on:
    83216.screen_name   (Detached)
1 Socket in /var/folders/k4/fdf21jn93jv5n3h5b1w9mpkm0000gp/T/.screen.

将命令发送到会话中:

[root] screen -S screen_name -X echo 'You are using screen'

执行此操作时,您不会看到任何有趣的事情,因为会话未连接到终端,但是您会注意到您没有收到错误消息。当您稍后附加到会话时,您也不会看到该echo命令的结果,因为echo仅在会话中弹出状态行消息,并且当您附加到会话时,该状态行将被关闭。会话。

如果您要执行的操作在附加时可见,请尝试类似的操作:

[root] screen -S screen_name -X exec cal 2 2020

然后,当您通过执行以下操作附加到会话时:

[root] screen -r screen_name

您将在屏幕会话中看到cal命令的结果(2020年2月的日历打印输出。)>

© www.soinside.com 2019 - 2024. All rights reserved.