다음 명령을 사용하여 TCP 소켓에서 보내고 받습니다.
exec 3<>/dev/tcp/localhost/port
echo -e "textcommand\r" >&3
cat <&3
exec 3<&-;exec 3>&-
cat <&3 줄은 터미널에 있는 localhost의 응답을 표시하지만 명령줄로 돌아가려면 Ctrl+d 또는 Ctrl+c를 사용해야 합니다. 키보드 상호 작용 없이 localhost의 응답을 어떻게 인쇄하고 명령줄로 다시 보낼 수 있습니까?
편집하다
(echo -en "textcommand\r"; sleep 1) | telnet localhost port
위의 대안으로. 여기에서 찾으세요:https://stackoverflow.com/a/24204924/5900282
편집 2
여기에도 비슷한 질문이 있습니다.Bash /dev/tcp 파일 설명자를 통해 Fluke 1620a에서 데이터 캡처
답변1
사용 timeout
:
exec 3<>/dev/tcp/localhost/port
echo -e "textcommand\r" >&3
timeout 0.2 cat <&3
exec 3<&-; exec 3>&-