2013-02-08 89 views
0

我想用我的Python腳本中的bash執行shell命令,在屏幕上獲得實時打印消息。我用下面的行做到這一點:爲什麼Popen需要按回車鍵返回到shell

subprocess.Popen(my_commands, shell=True, stdout=sys.stdout, stderr=sys.stderr, executable='/bin/bash') 

一切看起來好期待後的shell命令完成後,輸入光標仍然是不可見的。我必須按Enter鍵以再次激活外殼。那麼錯誤是什麼?

回答

0

那是因爲你有兩個貝殼,shell=True/bin/bash

如果設置shell=False你不會看到在控制檯上的輸出。你將不得不使用PIPE和/或subprocess.communicate()來獲得輸出(取決於你想要的)。