変数の値を16進数で印刷するには?

変数の値を16進数で印刷するには?

私はこれを除いてprintfの16進演算のすべてのバリアントを見つけることができるようです。

主にprintfを使用して構築したテキストファイルにhtml 16進カラー値を送信しようとしています。

個々のR、G、およびB値を計算できますが、通常は10進数(範囲0〜255)で印刷されます。 a) 2 桁の 16 進形式で b) 6 桁の文字列に連結して印刷するにはどうすればよいですか。

たとえば、変数値$ R = 254、$ G = 127、$ B = 0はFE7F00として出力する必要があります。

答え1

printf' %x(小文字)または%X(大文字)を使用して幅を2文字に強制します。

#!/bin/sh

r=254
g=127
b=0

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

結果は次のとおりです。

FE7F00

関連情報