从脚本运行时如何让 printf 输出十六进制字符?
假设我在提示符处输入 printf "\x41\x42"我得到的输出
AB%
但是,如果我有一个包含该行的脚本,即 cat test.sh
产生
printf "\x41\x42"
但是执行脚本./test.sh产生
\x41\x42%
如何让脚本产生与 shell 提示符相同的结果?
答案1
尝试使用外部printf
实用程序:
/usr/bin/printf "\x41\x42"
您可能有一个bash
shell,但作为交互式 shell, whilesh
链接到dash
.
dash
内置函数不printf
知道\xNN
,因此您必须使用八进制值 ,\0NN
来代替。
内置bash
确实printf
知道\xNN