我寫了一個bash腳本,在一個點上自動執行一些軟件的遠程主機上的安裝,就像這樣:調用從bash腳本AA遠程交互式python腳本:輸入請求滯後
ssh [email protected] "<path>/install-script"
哪裏install-script
是一個bash腳本。該bash腳本在某個時候調用另一個bash腳本,該腳本在某個時候調用一個交互式python腳本,然後使用python的raw_input()
函數收集用戶輸入。
當我通常(從bash shell)運行安裝腳本時,它會提示並接受輸入。但是,當我的腳本中的上述代碼運行時,直到輸入輸入之後,纔會有提示。
我真正控制的唯一腳本是我的自動化腳本。
我已閱讀此問題:「Python - how can I read stdin from shell, and send stdout to shell and file」。但是,我在正常的bash shell中運行並沒有問題,只能通過遠程命令通過ssh運行。
此問題是否可以從我的腳本中修復(如果是這樣,怎麼辦?),還是我必須修改python腳本?
UPDATE
爲了澄清,輸入提示我指的是從Python腳本中的提示。我沒有輸入SSH密碼(遠程主機有我的公鑰在authorized_keys
文件中)。
UPDATE
爲了進一步澄清,我的腳本(bash)的呼籲調用另一個bash腳本,最後調用的Python腳本,它會提示用戶輸入安裝腳本(bash)的。
即慶典 - >的bash - >的bash - >蟒
您需要使用subprocess.Popen或ssh lib才能實現輸入部分。 – Torxed
沿着我的問題中的代碼行:http:// stackoverflow。com/questions/20472288/python-ssh-password-auth-no-external-libraries-or-public-private-keys/20472419#20472419 – Torxed
我知道,但是我的問題中的代碼處理腳本的輸入/輸出通過SSH。注意'elif'是否確定要繼續連接'lower:'這是我給輸入返回到遠程提示的示例。我已經在需要某種形式的操作/用戶輸入的遠程安裝腳本中使用它。 – Torxed