0이 포함된 Bash 스크립트 루프 패딩 번호

0이 포함된 Bash 스크립트 루프 패딩 번호

따라서 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...

관련 정보