在編寫shell腳本的時候經(jīng)常會用到引號类垦,有些時候卻老是忘記單引號和雙引號之間的區(qū)別韧献,
所以就整理一下供以后腦子不好使了的時候前來復(fù)習(xí)一下维咸。首先說下他們的共同點: 好像就只有
一個,就是它們都可以用來界定一個字符串檬姥,這個沒什么好解釋的碎节,真正需要記住的是它們區(qū)別捧搞,
所以經(jīng)過整理后抵卫,它們的區(qū)別主要包括:
1)狮荔、單引號屬于強引用胎撇,它會忽略所有被引起來的字符的特殊處理,被引用起來的字符會被原
封不動的使用殖氏,唯一需要注意的點是不允許引用自身晚树;
2)、雙引號屬于弱引用雅采,它會對一些被引起來的字符進行特殊處理爵憎,主要包括以下情況:
1:$加變量名可以取變量的值 ,比如:
[root@localhost ~]# echo 'PWD'PWD
[root@localhost ~]# echo "$PWD"
/root
2:反引號和$()引起來的字符會被當(dāng)做命令執(zhí)行后替換原來的字符婚瓜,比如:
[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:當(dāng)需要使用字符($ ` " \)時必須進行轉(zhuǎn)義宝鼓,也就是在前面加\ ;
[root@localhost ~]# echo '` " \' " \ [root@localhost ~]# echo "\$ \
" \"
$ ` " \
轉(zhuǎn)載自:http://www.cnblogs.com/panhongyin