키보드 입력 없이 /dev/tcp 응답 인쇄

키보드 입력 없이 /dev/tcp 응답 인쇄

다음 명령을 사용하여 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>&-

관련 정보