除了这个之外,我似乎可以找到 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