質問: telnet へのパイプができないです telnet を使用して、たとえば web のデータを自動的に取得しようとしています。 80 番ポートに接続して 接続完了を待った後 http リクエストを出力する ということを意図していますが、下記環境では動作しません。 なぜでしょうか? $ uname -a linux srv4 2.6.32-36-generic #79-ubuntu smp tue nov 8 22:29:26 utc 2011 i686 gnu/linux $ (sleep 3; echo "get / http/1.0"; echo;) | telnet www.google.co.jp 80 trying 173.194.38.84... connected to www.l.google.com. escape character is '^]'. connection closed by foreign host. よろしくおねがいします。
回答: telnetにリダイレクトは使えません。他の手段を使ってください。 wget http://www.google.co.jp/ とか。 bashだと、リダイレクトを使って #!/bin/bash exec 3<> /dev/tcp/www.google.co.jp/80 echo get / http/1.1 >&3 echo host: www.google.co.jp >&3 echo connection: close >&3 echo >&3 cat <&3 とかも出来ます。 どうしてもtelnetをコントロールしたいのなら、expectというコマンドを使います。