我想在 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 接受输入。