0

次の Expect スクリプトは機能しますがinteract、最後にユーザーを対話型セッションに強制します。

#!/usr/bin/expect -f

set timeout 10
spawn telnet sometelnetserver.com 10000

foreach line [split [read [open somefile.txt r]] "\n"] {
    send "$line\n"
}

interact

interactただし、 telnet を削除すると、接続が停止します。スクリプトの出力

spawn telnet sometelnetserver.com 10000

リモートは接続を取得しません。

解決

対話する前に適切な終了コマンドを送信することでハッキリと解決されたため、対話するものは何もありません。

#!/usr/bin/expect -f

spawn -noecho telnet sometelnetserver 10000

foreach line [split [read [open somefile.txt r]] "\n"] {
    send -- "ed77e768-0a1f-4fda-98c0-c3e5af441f78 $line\r"
}

send \035
send quit\r
interact

ただし、サーバーが応答しない場合でもハングするため、これは大ざっぱに思えます。

4

0 に答える 0