如何在shell脚本中将十进制值打印为十六进制值

use*_*415 4 shell

我需要一个具有十进制值的字符串.例如,'0 2930 0'.现在,当我将其转换为十六进制时,它应该说'0000 0B72 0000'.我能够使用split和obase = 16将值转换为十六进制,使用bc,我将得到答案为'0 B72 0'.我需要的是获得值'0000 0B72 0000'.任何人都可以帮忙解释一下吗?

这就是我所做的:

s1 ='2930'
echo after converting it to hexadecimal
s=`echo "obase=16; $s1" |bc`
echo $s
Run Code Online (Sandbox Code Playgroud)

dev*_*ull 5

使用printf用于获取所需格式的输出:

$ printf "%04x " 0 2930 0
0000 0b72 0000
Run Code Online (Sandbox Code Playgroud)