Solaris 10では、次のコマンドをbashスクリプトとして実行したいと思います。
$ telnet localhost 25
debug
quit
この問題にどのように対処する必要がありますか?
答え1
bashを構成するのに十分幸運であれば--enable-net-redirections
、Bashのための特別なリダイレクト役に立つかもしれません:
cat <<EOF >/dev/tcp/localhost/25
debug
quit
EOF
サーバーの出力にも興味がある場合:
exec 3<>/dev/tcp/localhost/25 # open localhost:25 as fd 3
cat <<EOF >&3 # write to fd 3
debug
quit
EOF
cat <&3 # read from fd 3
exec >&3- # close fd 3
答え2
編集:提案どおりにテストされ、Linuxでは動作しますが、OPが要求したようにSolarisでは動作しません。
パイプスタイル
(echo debug ; echo qui ) | nc localhost 25
または(heredocスタイル)
nc localhost 25 <<EOF
debug
quit
EOF
私のUbuntuでは、telnetは入力を受け入れませんが、netcatは入力を受け入れます。