我需要一个具有十进制值的字符串.例如,'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)
使用printf用于获取所需格式的输出:
$ printf "%04x " 0 2930 0
0000 0b72 0000
Run Code Online (Sandbox Code Playgroud)