【发布时间】:2013-05-07 18:51:24
【问题描述】:
我在 bash shell 中有一个十进制数:
linux$ A=67
如何在 bash 中将 67 打印为十六进制?
【问题讨论】:
-
bash 中的 printf 是内置的,它不会派生 shell。我已经更改了答案,以举一个直接设置变量的示例,如问题
我在 bash shell 中有一个十进制数:
linux$ A=67
如何在 bash 中将 67 打印为十六进制?
【问题讨论】:
作为 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 ~ $
【讨论】:
the printf in bash is a builtin, it does not fork a shell.
printf 也是 coreutils - printf '%x\n' $1 在 shell 脚本中的一部分:/path/to/script 26