Bash手册提到
3.1.2.5 特定于语言环境的翻译
以美元符号 ('$') 开头的双引号字符串将使该字符串根据当前语言环境进行翻译。如果当前语言环境是 C 或 POSIX,则忽略美元符号。如果字符串被翻译和替换,则替换是双引号。
这种指定字符串文字的方式是否存在于 C 语言或某些 C 库中?
bash 是否从 C 模仿这种方式?
$"..."是 Bash 访问GNU gettext翻译的方式。在 C 代码中,它通常是gettext("...")or _("...")。Bash 使用系统默认的消息目录;C 应用程序还可以加载它想要使用的任何目录。
该$"语法是一个bash扩展类似于现有参数扩展语法,我想特别是$'ANSI-C引用它从KSH了并且可以使之成为在POSIX未来。C 语言不支持语法本身,也没有类似的语法。