In your specific case though it's probably easiest to use the -f
flag to seq
to get it to format the numbers as it outputs the list. For example:
for i in $(seq -f "%05g" 10 15)
do
echo $i
done
will produce the following output:
00010
00011
00012
00013
00014
00015
More generally, bash
has printf
as a built-in so you can pad output with zeroes as follows:
$ i=99
$ printf "%05d
" $i
00099
You can use the -v
flag to store the output in another variable:
$ i=99
$ printf -v j "%05d" $i
$ echo $j
00099
Notice that printf
supports a slightly different format to seq
so you need to use %05d
instead of %05g
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…