![Telnet 检查 bash 脚本](https://linux22.com/image/69024/Telnet%20%E6%A3%80%E6%9F%A5%20bash%20%E8%84%9A%E6%9C%AC.png)
我想在 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 接受输入。