Variable

如何將變數值列印為十六進制數字?

  • August 7, 2020

除了這個之外,我似乎可以找到 printf 十六進制操作的所有變體。

我正在嘗試將 html 十六進制顏色值發送到主要使用 printf 建構的文本文件。

我可以計算單獨的 R、G 和 B 值,但它們通常以十進制列印(範圍 0-255)。我怎樣才能列印出來,a)兩位十六進制和b)連接為六位數的字元串?

例如變數值 $ R=254, $ G=127, $B=0 應該列印為 FE7F00。

您可以為此使用printf’s %x(小寫)或%X(大寫),將寬度強制為 2 個字元:

#!/bin/sh

r=254
g=127
b=0

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

結果如下所示:

FE7F00

引用自:https://unix.stackexchange.com/questions/603355