红联Linux门户
Linux帮助

求问echo "字符串"和echo $"字符串"的区别

发布时间:2012-08-27 16:46:29来源:红联作者:upsco
我在查看/etc/init.d/下的脚本时,看到很多脚 本中用到echo $"字符串"来输出字符串,我实验了一下效果,表面中看跟echo "字符串"没什么差别,那为什么这些脚本要在字符串前加“$”,哪位大虾能帮忙解释一下这两种表示方法的区别吗?谢谢!
文章评论

共有 10 条评论

  1. Marlborors 于 2012-09-14 01:57:00发表:

    谢谢分享。。。。

  2. ty_2012sz 于 2012-09-08 16:28:58发表:

    学习

  3. hangyixiao 于 2012-09-05 12:50:35发表:

    受教了。。

  4. SmilePad 于 2012-09-04 22:42:26发表:

    $符号,是用来调用系统变量的
    比如 echo $PATH,这个命令就是在屏幕上输出环境变量

  5. cay39597 于 2012-09-04 21:52:10发表:

    如果你把双引号去掉的话,就会发现有区别的。。。。
    echo 字符串-------->打印字符串
    echo $字符串------->此时的字符串就相当于一个变量,打印的是变量的值。。。。

  6. upsco 于 2012-08-27 21:04:18发表:

    5# pl_014


    http://zh.wikipedia.org/wiki/Bash#.E8.BD.AC.E4.B9.89.E5.AD.97.E7.AC.A6:[code]双引号包裹的字符串前若有一个美元符号 ($"...") 将会使得字符串被翻译成符合当前locale的语言。如果当前locale是 C 或者 POSIX,美元符号会被忽略。如果字符串被翻译并替换,替换后的字符串仍被双引号包裹。[/code]应该就是这个意思了,谢谢

  7. pl_014 于 2012-08-27 20:52:43发表:

    引用:
    可是在那脚本里“$”很明显不是变量的前导符,你看:/etc/acpid:echo -n $"Starting acpi daemon:"
    /etc/halt:echo $"Usage:$0 {start}"
    upsco 发表于 2012-8-27 20:42

    哦,这个刚才没注意,这种用法我就不清楚了。给个维基百科的链接http://zh.wikipedia.org/wiki/Bash#.E8.BD.AC.E4.B9.89.E5.AD.97.E7.AC.A6,不过冒似这上仍未能完全解释这一用法。

  8. upsco 于 2012-08-27 20:42:49发表:

    可是在那脚本里“$”很明显不是变量的前导符,你看:/etc/acpid:echo -n $"Starting acpi daemon:"
    /etc/halt:echo $"Usage:$0 {start}"

  9. pl_014 于 2012-08-27 19:10:21发表:

    冒似$这个符号是用来加在变量前面的,比如LANG变量,看看echo LANG和echo $LANG的输出有什么不同。环境变量的列表可以通过执行export命令获得。

  10. dukes 于 2012-08-27 17:19:27发表:

    帮顶!同问!学习!