Você pode usar dois for
loops, ou seja, um para y
e um para x
(ou while
/ until
no loop y
, ou seja, o loop externo):
#!/bin/bash
for ((y=0; y<12345; y++)); do
for ((x=40000; x<180000; x++)); do
dd bs=1 if=static.file of=extracted${x}.file skip=12345 count=$x;
first_ten=$(hexdump -e '1/1 "%.2X"' "extracted${x}.file" | head -c 10);
if [ "$first_ten" == "1234567890" ]
then
echo "${x}" >> correct.txt;
fi;
rm extracted${x}.file;
done
done
Altere os valores para atender sua necessidade.
Exemplo:
% cat scr.sh
#!/bin/bash
for ((y=0; y<=3; y++)); do
for ((x=0; x<=2; x++)); do
echo "This is $x : $y"
done
done
% ./scr.sh
This is 0 : 0
This is 1 : 0
This is 2 : 0
This is 0 : 1
This is 1 : 1
This is 2 : 1
This is 0 : 2
This is 1 : 2
This is 2 : 2
This is 0 : 3
This is 1 : 3
This is 2 : 3