[英]Expect: get back from SSH
我正在嘗試編寫一個期望腳本:
1、通過SSH登錄我的樹莓派
2、在樹莓派里做點什么
3、發送“exit\r”返回我的電腦
4、在我的電腦上做點什么
我目前的解決方案如下所示:
#!/usr/bin/expect
set timeout -1
spawn ssh pi@XXXXXXXX
expect "*: "
send "raspberry\r"
expect "pi@"
# Do something here
send "exit\r"
expect "username@"
send "pwd" # pwd just as a test
expect eof
我得到的錯誤是:
send: spawn id exp6 not open
while executing
"send "pwd""
我試過谷歌搜索,但找不到任何可以解決這個問題的東西。
如果有人可以幫助我,我將非常感激!
好吧,您正在生成 ssh 程序。 當您從遠程 session 退出時,ssh 結束,現在您沒有正在運行的進程與之交互。
Expect 有另一種調用外部程序的機制:有spawn
和exec
。 這不提供任何交互性: exec
的程序只是運行和退出(並返回其輸出)。
所以,這取決於你想做什么“事情”:
除了expect(1)
手冊頁,由於Expect 是一個Tcl 擴展,還可以使用Tcl 命令。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.