Bash中双引号前的美元符号

7

最近我读了一些bash代码,echo $"asdf",那么$是什么意思?

$"asdf""asdf"有什么区别?


1个回答

12

正如在bash手册中记录的那样,它用于本地化:

一个以美元符号(“$”)开头的双引号字符串将根据当前语言环境进行翻译。如果当前语言环境为 C 或 POSIX,则忽略美元符号。如果字符串被翻译并替换,则替换后的字符串仍然是双引号包含。


2
你能举个例子来证明这实际上会对结果产生影响吗? - Alfe
1
哇,今天我学到了新东西,真是美好的一天(+1):) - ant
@Alfe,设置非常复杂。它在后台使用gettext。这个链接到Bash手册使得很容易看到下一节,其中解释了更多细节。 - Palec
@Palec 在链接指向的章节之后没有“下一节”。只有“上一节”和“返回顶部”按钮。(而从“返回顶部”可以进入下一节的“评论”部分。) - Alfe
1
抱歉,@Alfe,我忘记发布链接了。这是链接:https://www.gnu.org/software/bash/manual/bash.html#Locale-Translation - Palec
哦,是啊。那真的很复杂。我没有全部阅读,但感谢您指出它将如何使用! :-) - Alfe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接