双引号是什么意思,单引号与双引号的区别!

  双引号:

  

  把双引号内的模式输出出来;如果模式中有号令、变量等,会先把变量、号令剖析出结果,往后在输出终极模式来。

  

  不加引号:

  

  不会将含有空格的字符串视为一个集团输出, 如果模式中有号令、变量等,会先把变量、号令剖析出结果,往后在输出终极模式来,如果字符串中带有空格等特殊字符,则不克不及完整的输出,必要改加双引号,一般连续的字符串,数字,门路等可能用。

  

  实例演示:

  

  例1:

  

  [root@oldboy oldboy]# echo "`date`"

  

  #→单引号时看到啥就显示啥

  

  `date`

  

  [root@oldboy oldboy]# echo "`date`"

  

  #→双引号时如果概况是变量,会先把变量剖析成详细模式在显示

  

  Sat Oct 29 18:02:59 CST 2011

  

  [root@oldboy oldboy]# echo `date`

  

  #→对于连续的字符串等模式一般不加引号也可,加双引号一般角力共计安然,举荐

  

  Sat Oct 29 18:03:08 CST 2011

  

  例2:

  

  [root@oldboy ~]# oldboy=testchars #→创建一个变量

  

  [root@oldboy ~]# echo $oldboy #→不加引号,显示一个变量剖析后的模式

  

  testchars

  

  [root@oldboy ~]# echo "$oldboy" #→单引号,显示一个变量自己

  

  $oldboy

  

  [root@oldboy ~]# echo "$oldboy" #→双引号,显示一个变量模式,引号内可能是变量、字符串等

  

  testchars

  

  过滤字符串测试:

  

  [root@oldboy ~]# cat >grep.log

  

  testchars

  

  oldboy

  

  [root@oldboy ~]# cat grep.log

  

  testchars

  

  oldboy

  

  [root@oldboy ~]# grep "$oldboy" grep.log

博客  

  testchars

  

  [root@oldboy ~]# grep "$oldboy" grep.log

  

  [root@oldboy ~]# grep $oldboy grep.log

  

  testchars

  

  [ett@oldboy ~]$ cat >oldboy.log

  

  "

  

  [ett@oldboy ~]$ cat oldboy.log

  

  "

  

  [ett@oldboy ~]$ grep """ oldboy.log

  

  "

  

  揭示:无关单引号和双引号的判袂详细模式请参考《老男孩linux运维实战培训-shell编程精讲》

  

  拓展:awk调用shell变量问题

  

  [ett@oldboy ~]$ ett=123

  

  [ett@oldboy ~]$ awk "BEGIN {print "$ett"}"

  

  123

  

  [ett@oldboy ~]$ awk "BEGIN {print "$ett"}"

  

  $ett

  

  [ett@oldboy ~]$ ett="abc"

  

  [ett@oldboy ~]$ awk "BEGIN {print "$ett"}"

  

  $ett

  

  [ett@oldboy ~]$ awk "BEGIN {print "$ett"}"

  

  [ett@oldboy ~]$ awk "BEGIN {print ""$ett""}"

  

  abc