-1
我正在使用結構,這是一種僅在Python2中工作的部署工具。*,將我的博客部署到遠程服務器。期望具有多個外殼語句的腳本
但是我的博客是使用Python編寫的3.5,所以我試圖用expect腳本和pyenv工具來自動完成部署的事情:
#!/usr/bin/expect
set timeout 10
spawn pyenv global system # changes python to 2.* version
spawn fab build # gets files zipped
spawn fab deploy
expect "private key:"
send "x\r"
expect "Login password for 'myblog': "
send "*******\r"
expect eof
spawn pyenv global 3.5.1 # changes back
然後我發現只有spawn pyenv global system
和spawn fab deploy
部分的工作。
這是因爲spawn fab build
部分不需要任何輸入或反饋?但如果是這樣,它不能解釋爲什麼第一條語句spawn pyenv global system
發揮作用。另外,奇怪的是,最後的陳述失敗了。
順便說一句,當我在命令行中分別運行這四個語句時是很好的。
你檢查後出'autoexpect'?它將一個shell會話記錄到期望腳本中,並檢查可能會顯示錯誤操作的內容。 – Ben
@尚未,在你說出來之前我不知道autoexpect。我現在試試看,謝謝! – Spike