如何在Bash中将十进制转换为十六进制?

6

我可以在bash shell中使用十进制数字:

linux$ A=67

如何在bash中将67打印为十六进制?


2
在Bash中,printf是内置命令,它不会派生一个新的shell。我已经修改了我的回答,给出了一个直接设置变量的示例,与问题相对应。 - Vorsprung
1个回答

27

作为一个Bash程序:

#!/bin/bash 

decimal1=31

printf -v result1 "%x" "$decimal1"

decimal2=33

printf -v result2 "%x" "$decimal2"

echo  $result1 $decimal1
echo  $result2 $decimal2

或者直接使用bash shell:

el@defiant ~ $ printf '%x\n' 26
1a
el@defiant ~ $ echo $((0xAA))
170
el@defiant ~ $ 

2
+1 和接受该信息:在 Bash 中,printf 是一个内置命令,它不会派生出一个新的 shell。 - MOHAMED
printf is also part of coreutils - printf '%x\n' $1 in a shell script does the job: /path/to/script 26 - Stuart Cardall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接