텔넷 확인 bash 스크립트

텔넷 확인 bash 스크립트

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가 요청한 대로 솔라리스에서는 작동하지 않습니다.

파이프 스타일

(echo debug ; echo qui ) | nc localhost 25

또는 (heredoc 스타일)

nc localhost 25 <<EOF
debug
quit
EOF

내 우분투에서 telnet은 입력을 허용하지 않지만 netcat은 입력을 허용합니다.

관련 정보