簡體   English   中英

期望:從 SSH 返回

[英]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 有另一種調用外部程序的機制:有spawnexec 這不提供任何交互性: exec的程序只是運行和退出(並返回其輸出)。

所以,這取決於你想做什么“事情”:

  • 在您的本地機器上生成 bash 然后與 send & expect 一起使用
  • 執行某事。

除了expect(1)手冊頁,由於Expect 是一個Tcl 擴展,還可以使用Tcl 命令

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM