我正在用bash编写一个非常简单的脚本:
for i in {000..1024} ; do
echo $i ;
echo "obase=16; $i" | bc
done
我想将至少三位数的所有数字打印为000,001,002 ..直到099.使用整数数字它可以正常工作,但在obase = 16; $ i '| bc
s号后返回一位或两位数。
我如何以最简单的方式解决它?
答案 0 :(得分:3)
您可能希望使用printf
格式化数字,例如:
for i in {0..1024} ; do
echo $i
printf '%03X\n' $i
done
或j=$(printf '%03X' $i)
然后echo $j
。
有关格式化的更多信息,请检查enter image description here的格式字符串子部分。
答案 1 :(得分:1)
不确定它是“最简单的”,但通常printf适用于格式化问题。例如
printf "%03s\n" "$(echo "obase=16; $i" | bc)"