/bin/sh は dash printf です。ダッシュで16進またはdexコードを使用して特定のASCII文字を表示する正しい構文は何ですか?ドル記号($)を印刷したいとしましょう。どの16進または10進コードを使用し、どのように使用する必要がありますか?
答え1
文字コードから文字自体に移動するには、printf
書式文字列に文字コードを含めてバックスラッシュでエスケープします。8進数。
たとえば、printf "\044\n"
印刷$
(および改行)です。
Bashや他のシェルでは16進数を使用できますが、\x24
これは標準ではなくDashでは機能しません。
ただし、printf
コマンド置換内に他のコマンドを入れ子にして、16進数または10進数を8進数に変換できます。どちらも印刷$
(および改行)されます。
printf "\\$(printf %o 36)\n"
printf "\\$(printf %o 0x24)\n"