따라서 localhost의 포트에 4자리 숫자를 반복적으로 제출한 다음 해당 포트에서 얻은 응답에 비슷한 문자열을 사용한 특정 문자열이 포함되어 있는지 평가해야 합니다 grep
. echo {0000...9999} | nc localhost port
그러나 이 명령으로 bash 스크립트에서 작동하는 좋은 시퀀스 확장을 얻을 수 없습니다. 이 문제를 해결하려면 bash 스크립트를 어떻게 작성해야 합니까?
답변1
다음과 같은 것을 사용할 수 있습니다 for-loop
.
for i in {0001..9999}; do
grep -q 'specificString' <<<"$(nc localhost $i)" && \
echo "found on $i" || echo "not found on $i";
done
답변2
중괄호 확장을 지원하지 않거나 0 패딩을 유지하지 않는 쉘의 경우:
i=0
while [ "$i" -le 9999 ]; do
printf '%04d\n' "$i"
i=$(( i + 1 ))
done | nc ...other options... | grep ...etc...