解決此問題的一種方法是首先啓動bash,然後運行您的命令。有一點需要記住的是,在發送每個命令之後調用child.expect是很好的。以下是如何連接到服務器然後運行ls的示例。微不足道,但希望是有幫助的。對於像「CD」命令,你就應該能夠期待和空字符串,因爲沒有通常輸出
import pexpect
import sys
child = pexpect.spawn("bash")
child.logfile = sys.stdout
child.sendline("ssh [email protected]")
child.expect("Some string to match")
child.sendline("ls")
child.expect("Some directory or file")
child.sendline("cd /path/to/file/or/directory")
child.expect("")
child.sendline("ls")
child.expect("A certain filename")
當您運行ssh命令,你也可以這樣做
ssh -t [email protected] 'cd /path/to/directory'
這會當你的SSH連接開始時,帶你進入一個目錄
看看[fabric](http://www.fabfile.org/) – jfs 2014-09-26 10:50:48
我找不到python代碼來提供如何使用fabric.they提供密碼,只是說有--password選項。請提供,如果你有任何 – 2014-09-26 10:55:43
如果你搜索「面料密碼」,例如,在谷歌會發生什麼? – jfs 2014-09-26 10:59:11