9

使用 Bash,您可以使用printf十六进制代码

\xHH   byte with hexadecimal value HH (1 to 2 digits)
\uHHHH Unicode (ISO/IEC 10646) character with hex value HHHH (4 digits)

例子

$ printf '\x26'
&

但是,Unicode 示例未按预期打印

$ printf '\u0026'
\u0026

我的 Bash 版本

$ echo $BASH_VERSION
4.1.10(4)-release
4

1 回答 1

7

bash您使用的是什么版本的(echo $BASH_VERSIONbash --version)?Unicode 转义适用于bash4.2,但不适用于 3.2.48。我怀疑在bash4.0 中添加了支持。

bash更新:我可以确认它在4.1.2中不起作用。此功能似乎已在bash4.2 中添加。

更新 2:来自bash 4.2 的发行说明

d。 $'...', echo, 以及printf理解\uXXXX\UXXXXXXXX转义序列。

于 2013-04-15T17:33:49.130 回答