我需要在python腳本上運行一個大型的構建腳本(bash命令)。我將它作爲一個大字符串接收,並且每行都被\ n分隔。所以,我需要分別執行每一行。我試着用subprocess.Popen()來執行它們。但問題是:在每行之後,進程終止並且所有環境變量都丟失。在python中執行相同進程中的bash命令
問題不在於等命令完成執行另一個命令,我需要在同一個shell上執行所有命令。
到目前爲止,我發現的唯一解決方案是將所有這些命令保存爲sh文件(例如build.sh)並在python上執行它。
我不想使用這個approuch,因爲我想對每次執行有更多的控制權。
有什麼辦法可以在同一個進程上一個接一個地執行這些命令嗎?
任何其他解決方案也不錯。
的可能的複製[蟒蛇等待shell命令來完成(http://stackoverflow.com/questions/16196712/python-to-wait-for-shell-command-to-complete) – vv01f
你可以用'subprocess.Popen()'啓動一個shell,然後將命令提供給它的標準輸入。 – jasonharper
@jasonharper你的意思是從Popen獲得輸出並直接添加到另一個Popen作爲標準輸入?但是環境變量呢?我怎麼能保留它們? – leandrocastelli