/bin/sh 将是破折号 printf 在破折号中使用十六进制或 dex 代码显示某些 ascii 字符的正确语法是什么?假设我想打印一个美元符号($)。应该使用哪种十六进制或十进制代码以及如何使用?
答案1
如果您想从字符代码转到字符本身,请将字符代码包含在printf
格式字符串中,并用反斜杠转义,八进制。
例如printf "\044\n"
打印$
(和换行符)。
在 Bash 和其他 shell 中,您可以使用十六进制,\x24
但这不是标准的,并且在 Dash 中不起作用。
不过,您可以printf
在命令替换中嵌套另一个命令,以从十六进制或十进制转换为八进制。这两个都会打印$
(和换行符):
printf "\\$(printf %o 36)\n"
printf "\\$(printf %o 0x24)\n"