Linux shell 單引號和雙引號


  

  在編寫shell腳本的時候經常會用到引號,有些時候卻老是忘記單引號和雙引號之間的區別,

所以就整理一下供以后腦子不好使了的時候前來復習一下。首先說下他們的共同點: 好像就只有

一個,就是它們都可以用來界定一個字符串,這個沒什么好解釋的,真正需要記住的是它們區別,

所以經過整理后,它們的區別主要包括:

 

1)、單引號屬於強引用,它會忽略所有被引起來的字符的特殊處理,被引用起來的字符會被原

  封不動的使用,唯一需要注意的點是不允許引用自身;

 

2)、雙引號屬於弱引用,它會對一些被引起來的字符進行特殊處理,主要包括以下情況: 

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

  [root@localhost ~]# echo '$PWD'
  $PWD  

  [root@localhost ~]# echo "$PWD"

  /root 

  2:反引號和$()引起來的字符會被當做命令執行后替換原來的字符,比如:

  [root@localhost ~]# echo '$(echo hello world)'
  $(echo hello world)
  [root@localhost ~]# echo "$(echo hello world)"
  hello world

[root@localhost ~]# echo '`echo hello world`'
`echo hello world`
[root@localhost ~]# echo "`echo hello world`"
hello world 

  3:當需要使用字符($  `  "  \)時必須進行轉義,也就是在前面加\ ; 

[root@localhost ~]# echo '$ ` " \'
$ ` " \
[root@localhost ~]# echo "\$ \` \" \\"
$ ` " \

 

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

 

 

作者:潘洪銀 

地址:http://www.cnblogs.com/panhongyin

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM