如何将变量值打印为​​十六进制数?

如何将变量值打印为​​十六进制数?

除了这个之外,我似乎可以找到 printf 十六进制操作的所有变体。

我正在尝试将 html 十六进制颜色值发送到主要使用 printf 构建的文本文件。

我可以计算单独的 R、G 和 B 值,但它们通常以十进制打印(范围 0-255)。我怎样才能将它们打印出来,a)以两位数的十六进制形式和b)连接为六位数字的字符串?

例如,变量值 $R=254、$G=127、$B=0 应打印为 FE7F00。

答案1

您可以使用printf's %x(小写)或%X(大写)来实现此目的,将宽度强制为 2 个字符:

#!/bin/sh

r=254
g=127
b=0

printf '%02X%02X%02X\n' "$r" "$g" "$b"

结果看起来像这样:

FE7F00

相关内容