linux发送命令到现有屏幕

时间:2016-08-09 07:23:24

标签: linux gnu-screen

我创建了一个屏幕“myscreen”,在该屏幕内我导航到一个包含python文件test.py的文件夹,它只是打印一些东西。然后我分离了屏幕,现在我正在尝试向它发送命令来运行我的脚本。所以我尝试了以下命令:

screen -S myscreen -X stuff python test.py `echo -ne '\015'`

那里没有错误,但当我打开屏幕看到那里的输出时,我什么都没看到 - 屏幕是空白的。我尝试了另一种方法:我创建了一个shell文件,在那里我写道:

screen -r myscreen
python test.py

但结果是一样的,没有打印出来。两次尝试都失败的原因是什么,我该如何解决?感谢。

更新

我也试过这个不起作用:

screen -X select myscreen
screen -X readreg p <( echo python test.py )

1 个答案:

答案 0 :(得分:0)

如果您这样做,则将命令发送到屏幕本身, 不在里面跑来跑去。

如何在终端内发送命令?

使用readregpaste。在这里,我将数据从/tmp/file发送到屏幕1:

$ screen -X select 1
$ screen -X readreg p /tmp/file
$ screen -X paste p

如果您没有包含数据的文件, 你可以使用进程替换,如:

$ screen -X readreg p <( echo python test.py )