2014-03-25 68 views
0

我有一個文本文件,其中包含100個bash命令,我想在新的屏幕中執行每5個,但我不知道我是否可以在此使用「for」案件 。python從文本文件發送特定數量的命令

例如,我們有這些命令: -

mkdir 1 
cd 1 
rm -rf 1.txt 
rm -rf 2.txt 
cd .. 
mkdir2 
... 

我想創建一個新的屏幕,併發送前5個命令,它被執行,然後把其他5到另一個屏幕來結束文件 。

我該怎麼做?任何幫助請與編碼?

感謝

+0

什麼?你想每5個命令產生一個新的屏幕?你爲什麼這樣做?爲什麼不把你的輸出重定向到一個文件或什麼? –

+0

我發送的命令需要很長時間,因爲它處理的是大文件。我只是寫了這個例子。 python腳本只是自動完成整個命令的過程 – abualameer94

+0

你試過了什麼? Python有一個['subprocess'](http://docs.python.org/2/library/subprocess.html)模塊。 – ChrisP

回答

1

我看不出任何一點,爲什麼要做到這一點,但你可以結合緩衝來自輸入使用您的解決方案5線,加入他們的;

with open('commands.sh') as file: 
    buffer = [] 
    for i, command in enumerate(file): 
     buffer.append(command) 
     if i % 5 == 0: 
      os.system('screen -m -d "{0}"'.format(';'.join(buffer))) 
      buffer = [] 
相關問題