for seq in {046725..046899}
do
#body
done
上面的代码段可以很好地运行,并在seq变量中保留前面的零,但是为什么后面的代码段不运行?有什么办法吗?如果有任何前面的零,我需要for循环中的seq变量具有前面的零。
lowest=046725
highest=046899
for seq in {$lowest..$highest}
do
#body
done
您应该可以使用以下代码完成此操作:
#!/bin/bash
lowest=046725
highest=046899
width=6
for (( seq=10#$lowest; seq<=10#$highest; seq++))
do
length=`echo -n $seq | wc -c`
if [[ $length < $width ]]; then
number_of_zeroes_to_add=`expr $width - $length`
for zeroes in `seq $number_of_zeroes_to_add`;
do echo -n 0;
done
fi
echo $seq
done
这是在确定数字的宽度(例如6个字符的宽度),识别由于前导零已被截断而不适应该宽度的数字,然后重新插入。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句