Printf

如何在 /bin/sh -c ‘…’ 中使用十六進製或十進制列印 ascii 字元?

  • June 8, 2021

/bin/sh 將是破折號 printf 在破折號中使用十六進製或 dex 程式碼顯示某些 ascii 字元的正確語法是什麼?假設我想列印一個美元符號($)。應該使用哪個十六進製或十進制程式碼以及如何使用?

如果您想從字元程式碼轉到字元本身,則將字元程式碼包含在printf格式字元串中,用反斜杠轉義,以八進製表示。

例如printf "\044\n"列印$(和換行符)。

在 Bash 和其他 shell 中,您可以使用 hex, \x24,但這不是標準的,並且在 Dash 中不起作用。

不過,您可以在命令替換中嵌套另一個printf以將十六進製或十進制轉換為八進制。這兩個都會列印$(和換行符):

printf "\\$(printf %o 36)\n"
printf "\\$(printf %o 0x24)\n"

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