【发布时间】:2015-04-17 03:22:45
【问题描述】:
请尝试:
bash -c "printf '\u2744'"
bash -c "echo -e '\u2744'"
所以:
sh -c "printf '\u2744'"
sh -c "echo -e '\u2744'"
为什么在/bin/bash 中我可以得到那个unicode 字符,但在/bin/sh 中却没有?如何在/bin/sh中打印一个unicode字符(例如❄)?
【问题讨论】:
-
因为 POSIX sh 标准不包括 Unicode 支持,所以不需要
/bin/sh来支持它。 (此外,POSIX sh 标准根本不包括echo -e—— bash 不仅扩展了标准,而且还破坏了它的少数几个地方之一。 -
...有关
echo的完整说明,请参阅pubs.opengroup.org/onlinepubs/009604599/utilities/echo.html;应用程序用法和基本原理部分特别重要。 -
至于
printf的 POSIX 规范——列出/bin/sh需要提供的唯一行为——它在pubs.opengroup.org/onlinepubs/009604599/utilities/printf.html 中指定;你也不会在那里看到\u。