Você pode usar em for-loop
da seguinte forma:
for i in {0001..9999}; do
grep -q 'specificString' <<<"$(nc localhost $i)" && \
echo "found on $i" || echo "not found on $i";
done
Portanto, preciso tentar repetidamente enviar um número de 4 dígitos para uma porta no host local e, em seguida, avaliar a resposta que recebo da porta se ela contiver uma string específica, o que faço com grep
. Eu usei algo como echo {0000...9999} | nc localhost port
. No entanto, não consigo obter essa expansão de seqüência agradável que recebo desse comando para trabalhar em um script bash. Como eu poderia escrever um script bash para esse problema?
Para shells que não suportam expansões de chaves, ou que não preservam o preenchimento zero:
i=0
while [ "$i" -le 9999 ]; do
printf '%04d\n' "$i"
i=$(( i + 1 ))
done | nc ...other options... | grep ...etc...