Bash 是否模仿 C 语言的区域特定翻译?

Bash 是否模仿 C 语言的区域特定翻译?

Bash 手册提到

3.1.2.5 特定于语言环境的翻译

前面带有美元符号 ('$') 的双引号字符串将导致根据当前区域设置翻译该字符串。如果当前语言环境是 C 或 POSIX,则忽略美元符号。如果字符串被翻译并替换,则替换内容将被双引号括起来。

C 语言或某些 C 库中是否存在这种指定字符串文字的方式?

bash 是否模仿了 C 的这种方式?

答案1

$"..."是 Bash 的访问方式GNU 获取文本翻译。在 C 代码中,它通常是gettext("...")or _("...")。 Bash 使用系统默认的消息目录; C 应用程序还可以加载它想要使用的任何目录。

$"语法是 Bash 扩展,类似于现有的参数扩展语法,我认为特别是$'ANSI-C 引用它取自 ksh ,其中可能将来将其纳入 POSIX。 C 语言不支持该语法本身,也没有与之类似的语法。

相关内容