如何将变量值从0x00增加到0x11(十六进制)

时间:2016-10-21 13:23:42

标签: bash hex

任何人都可以告诉如何在bash中将变量值从0x00增加到0x04。 我想生成:

0x00
0x01
0x02
0x03
0x04

但我得到以下结果:

0
1
2
3
4

我的代码是:

#!/bin/bash
for (( num=0x0; num <= 0x04 ; num+=1 ));
do 
    echo $num
done

1 个答案:

答案 0 :(得分:2)

使用printf将数字打印为十六进制:

for (( num=0x0; num <= 0x20 ; num+=1 )); do 
    printf '0x%02X\n' $num
done

请注意,num并不特别。即使您使用0x0对其进行初始化,它也只是0.即使我们将num传递给printf,也会以小数形式完成(因此0x11传递为17) 。 printf将您的号码格式化为十六进制。