shell 十进制数字转十六进制字符串并将结果保存到变量

.

.

.

.

.

今天写测试脚本的时候需要将生成的十六进制值作为参数传递给某个命令,而循环生成的数值都是十进制的。在网上查了好久也没有找到如何将一个变量中的值进行进制转换,并保存到变量中,网上的办法都是将一个常量转换进制后赋值给变量。

在群里问了群友未果后,忽然灵光一现找到了解决办法。最近记忆力越来越差了,赶紧记录下来,也给其他遇到相同问题的园友提供一份参考。

1 for i in {1..16}
2 do
3     i=`printf "0x%02x
" ${i}`
4 done

注意第三行包围着 printf(1) 命令的并不是单引号('),而是撇号(`),就是 QWERTY 键盘上 Esc 键下面的 ~ 键上的。

脚本很简单,这里就不做解释了,printf(1) 命令的用法与 C 语言中 printf(3) 函数的用法基本相同。

原文地址:https://www.cnblogs.com/0xcafebabe/p/7085283.html