在編寫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