Linux shell 单引号和双引号

Posted Hello world

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell 单引号和双引号相关的知识,希望对你有一定的参考价值。

  

  在编写shell脚本的时候经常会用到引号,有些时候却老是忘记单引号和双引号之间的区别,

所以就整理一下供以后脑子不好使了的时候前来复习一下。首先说下他们的共同点: 好像就只有

一个,就是它们都可以用来界定一个字符串,这个没什么好解释的,真正需要记住的是它们区别,

所以经过整理后,它们的区别主要包括:

 

1)、单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原

  封不动的使用,唯一需要注意的点是不允许引用自身;

 

2)、双引号属于弱引用,它会对一些被引起来的字符进行特殊处理,主要包括以下情况: 

  1:$加变量名可以取变量的值 ,比如:

  [[email protected] ~]# echo ‘$PWD‘
  $PWD  

  [[email protected] ~]# echo "$PWD"

  /root 

  2:反引号和$()引起来的字符会被当做命令执行后替换原来的字符,比如:

  [[email protected] ~]# echo ‘$(echo hello world)‘
  $(echo hello world)
  [[email protected] ~]# echo "$(echo hello world)"
  hello world

[[email protected] ~]# echo ‘`echo hello world`‘
`echo hello world`
[[email protected] ~]# echo "`echo hello world`"
hello world 

  3:当需要使用字符($  `  "  \)时必须进行转义,也就是在前面加\ ; 

[[email protected] ~]# echo ‘$ ` " \‘
$ ` " \
[[email protected] ~]# echo "\$ \` \" \\"
$ ` " \

 

  备注:/bin/sh -> bash,版本:4.2.46  (2016-06-21 14:21:46)

以上是关于Linux shell 单引号和双引号的主要内容,如果未能解决你的问题,请参考以下文章

linux中双引号单引号和不加引号的区别吗

Shell 中单引号和双引号区别

linux bash shell 中的单引号和双引号

linux bash shell中,单引号 双引号,反引号(``)的区别及各种括号的区别

请教Linux shell命令中双引号与单引号嵌套的问题

shell脚本中单引号和双引号的区别