【问题标题】:how is echo -n $"some string" different then echo -n "some string"echo -n $"some string" 与 echo -n "some string" 有何不同
【发布时间】:2023-03-16 12:15:01
【问题描述】:

我正在为我自己的服务创建一个启动脚本,并查看一些现有的服务启动脚本以寻求帮助。在 /etc/init.d/atd 启动脚本中,我看到以下构造:

echo -n $"Stopping $prog: "

我找不到任何关于以 $ 开头的字符串的作用的文档。它似乎与不使用 $ 符号完全相同。任何人都知道您为什么要这样做,甚至在记录了这种晦涩用途的地方会做得更好?到目前为止,Google 没有提供帮助。

脚本是 /bin/sh (bourne shell) 方言。

这是 CentOS 版本 6.2(最终版)

【问题讨论】:

  • 两者都最好使用printf 命令完成,它比echo 的无数不同实现更强大且更一致。

标签: string sh


【解决方案1】:

以美元符号$"string" 开头的双引号字符串将导致根据当前语言环境翻译该字符串。如果当前语言环境是 C 或 POSIX,则忽略美元符号。如果字符串被翻译和替换,替换是双引号。

【讨论】:

    猜你喜欢
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 2012-07-25
    • 2023-04-05
    • 1970-01-01
    • 2019-11-23
    相关资源
    最近更新 更多