在简单命令中,有没有“” 都一样,比如:
  1. cmd=“cat abc.txt"
  2. eval $cmd  与 eval “$cmd”

但是当 参数展开后包括 换行的时候,加”“ 会得到正确结果。比如:
  1. cat abc.txt
    1. echo "first line"
      echo "second line"
      pwd
      echo "last line"
  2. eval $(cat abc.txt)  #参数命令输出的第一行被执行了,其他的作为第一行的参数
    1. first line echo second line pwd echo last line
  3. eval “$(cat abc.txt)"
    1. first line
      second line
      /Users/bodong/workshop
      last line

参考:
  1. linux 命令行 展开的12各步骤 http://blog.csdn.net/hshl1214/article/details/7534589。 不同的条件 会省略不同的步骤,导致结果不同。
  2. http://unix.stackexchange.com/questions/215343/what-is-the-difference-of-defining-a-variable-with-or-without-quotation-marks
Posted on 2015-11-16 11:40  bob.dong  阅读(165)  评论(0编辑  收藏  举报