红联Linux门户
Linux帮助

一点概念性的问题【待】

发布时间:2009-03-01 16:14:03来源:红联作者:释梵
hello="A B C D"
34 echo $hello # A B C D
35 echo "$hello" # A B C D
36 # 就象你看到的echo $hello 和 echo "$hello" 将给出不同的结果.
37 # ^ ^
38 # Quoting a variable preserves whitespace.
38 # 引用一个变量将保留其中的空白,当然,如果是变量替换就不会保留了.

我不太明白的就是这里面在引用之前还是先已经进行了变量替换啊!怎么结果会不一样呢?
文章评论

共有 5 条评论

  1. 释梵 于 2009-03-01 22:33:43发表:

    我的意思是说那个例子中,在引号以内,已经做了变量替换了,既然变量替换不能保留空格,那么在外面加引号也应该于事无补啊!为什么加了引号,空格就留下了呢?

  2. cwqing1973 于 2009-03-01 17:12:07发表:

    这跟shell中的引用有关,在shell中,“”这个符号是可以显示其所包括的一切,可以这么讲吧。而至于一些应用你可以在Linux操作系统中作试验与学习。

  3. 释梵 于 2009-03-01 17:08:39发表:

    对啊,我想问为什么echo "$hello"#会保留多余的空格啊?

  4. wang7131984 于 2009-03-01 16:57:35发表:

    第一句里的赋值为什么要引号...自己思考吧

  5. wang7131984 于 2009-03-01 16:56:11发表:

    hello = "AspBspCspspD"#hello: AspBspCspspD
    echo $hello#不会保留多余空格于是AspBspCspD,这句等价于echo AspBspCspspD
    echo "$hello"#会保留多余的空格于是AspBspCspspD,这句等价于echo "AspBspCspspD"