web-dev-qa-db-ja.com

telnetに1行で1つのコマンドを実行させます

「telnetlocalhost4242」でtelnetにログインできるので、「shownetwork」という1つのコマンドを実行します。

これを1行で行うにはどうすればよいですか?

そんな感じ

$ telnet localhost 4242 <-"show network"

ここに私が欲しい出力があります

14
Nick Russler

私は expect が私が望むことを正確に実行し、特定の出力を待ってからそれに基づいて行動することを発見しました:

expect << EOF
spawn telnet localhost 4242
expect -re ".*>"
send "show network\r"
expect -re ".*>"
send "exit\r"
EOF
17
Nick Russler

ログインなどの必要がない場合は、次のような「ヒアドキュメント」を使用できます。

telnet localhost 4242 << EOF
show network
EOF