Telnet検証bashスクリプト

Telnet検証bashスクリプト

Solaris 10では、次のコマンドをbashスクリプトとして実行したいと思います。

$ telnet localhost 25
debug
quit

この問題にどのように対処する必要がありますか?

答え1

bashを構成するのに十分幸運であれば--enable-net-redirectionsBashのための特別なリダイレクト役に立つかもしれません:

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は入力を受け入れます。

関連情報