2014-06-30 102 views
1

我在Ubuntu 12.04 LTS上运行Python 2.7。我的Python代码看起来有点像这样:如何通过python发送命令到运行屏幕(Ubuntu 12.04)

from os import system 
system("screen -S session -X stuff 'commandhere'`echo -ne '\015'`") 

但是当我尝试运行它时,它什么也没做。我想知道是否可以解决这个问题,如果可以的话,怎么样?

我想发送一个命令到活动屏幕“会话”其中“commandhere”是命令。

+0

你在使用什么版本的Ubuntu,以及你使用的是什么版本的Python? – JakeGould

+1

Ubuntu 12.04 LTS; Python 2.7 – DavidT

回答

3

你试过subprocess.call()这样的:

#!/usr/bin/python 
import subprocess 
subprocess.call(["screen", "-S", "session", "-X", "stuff", "'command here'`echo -ne '\015'`"]) 

另一个想法:这可能是最好的只创建一个bash脚本来完成会话操作的东西,只是有Python中,然后调用bash脚本。

+1

我试过了,但它似乎并不接受“-S会话”部分。具体说明“错误:未知选项S会话” – DavidT

+1

@DavidT'-S session'是一个占位符。您需要将其更改为'-S [实际会话号码]'。用'[实际会话号码]'作为要写入的实际会话号码。 – JakeGould

+0

我正在使用实际运行会话(jcmp)的名称。 – DavidT