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은 입력을 허용합니다.