/bin/sh无法识别十六进制转义序列

为什么会在 /bin/bash 上发生这种情况:

$ printf '%b' 'x90'
?
$

但这发生在 /bin/sh 上:

$ printf '%b' 'x90'
x90
$

它们之间的区别/bin/bash以及/bin/sh为什么首先解码十六进制和第二不能?

回答

因为xdd格式中的转义序列(其中每个都d代表一个十六进制数字)是 GNU 扩展并且并非随处可用。但是八进制得到了广泛的支持(和标准化),因此您可以使用:

printf '%b' '220'


以上是/bin/sh无法识别十六进制转义序列的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>