如何在脚本命令中将十六进制字符传递给 printf?

如何在脚本命令中将十六进制字符传递给 printf?

从脚本运行时如何让 printf 输出十六进制字符?

假设我在提示符处输入 printf "\x41\x42"我得到的输出

 AB%

但是,如果我有一个包含该行的脚本,即 cat test.sh产生

printf "\x41\x42"

但是执行脚本./test.sh产生

\x41\x42%

如何让脚本产生与 shell 提示符相同的结果?

答案1

尝试使用外部printf实用程序:

/usr/bin/printf "\x41\x42"

您可能有一个bashshell,但作为交互式 shell, whilesh链接到dash.

dash内置函数不printf知道\xNN,因此您必须使用八进制值 ,\0NN来代替。

内置bash确实printf知道\xNN

相关内容