2014-06-30 104 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