Observe que seu loop é um pouco redundante, for
irá definir guess
para todos os valores impressos por seq
, você não precisa alterar o valor sozinho.
for guess in $(seq -f "%04g" 0000 9999) ;do
guess=$((10#guess+1))
done
Na verdade, o loop for
praticamente substitui a atribuição que você faz, compare com isso:
$ for x in 9 6 3 ; do echo $x; x=1 ; done
9
6
3
(O valor atribuído de 1
nunca é impresso.)
Então, apenas isso funcionaria:
$ for x in $(seq -f "%04g" 1 2) ; do echo $x; done
0001
0002
Ou você pode usar printf
para obter o número no formato desejado:
$ for x in $(seq 1 2) ; do printf "%04d\n" $x; done
0001
0002
Eu acho que alguns sistemas não têm seq
, então você precisa fazer sem. No Bash, isso deve funcionar:
$ for (( x=0 ; x < 100 ; x++ )) ; do
printf "%04d\n" $x
done