在Windows後,我從cmd.exe
運行下面的Python腳本3.5:Python的輸入()反應遲鈍砰砰
subprocess.run(['C:\\Program Files (x86)\\Putty\\plink.exe',
'[email protected]', '-P', '54022', '-i', 'key.ppk', 'exit'])
input('Press Enter...')
但是,當它的時候按Enter鍵,控制檯沒有響應。 輸入什麼都不做。文字無法輸入。 Ctrl + C也不做任何事情。 Python必須在任務管理器中被殺死。
我懷疑plink
離開控臺處於不良狀態。我可以預防或修復嗎?或者我可以在自己的控制檯中運行ssh命令嗎?這並不理想,但它可以。
或者也許有更好的解決方案通過使用Python的SSH運行遠程命令?
當直接從cmd
(沒有Python)運行相同的plink
命令時,它仍然保持響應。
[在Plink文檔](http://the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter7.html)它是你應該使用'-ssh'選項來確保它正在使用ssh進行自動連接時。也許這就是爲什麼它掛起?你也沒有說你的腳本是否打印了「Press Enter ...」文本。如果沒有,那麼它確實是使腳本掛起的Plink。 – Sevanteri
@ Sevanteri plink命令本身做它應該做的事,大概是通過ssh(我不知道怎麼回事),但我會繼續研究這個選項。 「Press Enter ...」確實是打印出來的,如果我用其他代碼替換它,那麼執行得很好。它不接受任何輸入了。 –
@eryksun雖然我知道如何'bash'不是'gnome-terminal',我不知道Windows的具體細節。但是有意義的是,有一個單獨的'conhost',因爲當你運行一個控制檯應用程序'cmd'時不涉及。謝謝你清理那個。 –