선생님은 나에게 한 번에 하나의 숫자를 보내는 로봇을 이겨야 한다는 과제를 주셨는데, 나는 정확한 숫자를 보내야 했지만 더 빨리 보내야 했습니다. 나는 bash 스크립트를 작성했습니다:
#!/bin/bash
while true; do
nc ip port | grep "try to beat me:" | cut -d " " -f5 | xclip
xclip -o
done
문제는 xclip이 번호를 복사하지만 netcatb의 서버로 보내지 않는다는 것입니다. 이유는 무엇입니까?
답변1
대화형 모드를 사용하여 소켓을 통해 데이터를 보내고 받으려면 nc
다음을 수행할 수 있습니다.
nc -c /path/to/your/script <host> <port>
들어오는 모든 nc
데이터는 스크립트의 입력에 기록되고 스크립트의 출력은 소켓으로 전달됩니다.
이렇게 하면 스크립트에서 번호를 읽고 stdin
직접 인쇄하여 다음 주소로 보낼 수 있습니다 nc
.
#!/bin/bash
while true; do
grep "try to beat me:" | cut -d " " -f5 | xclip
xclip -o
done
답변2
나는 아마도 다음과 같은 것을 원할 것이라고 믿습니다.
#!/bin/bash
while true; do
port=$(nc ip port | grep "try to beat me:" | cut -d " " -f5)
nc ip "$port" </dev/null
sleep 1
done