說明:本文爲老男孩linux培訓某節課前考試試題及答案分享博文內容的一部分,也是獨立成題的,你能夠點下面地址查看所有的內容信息。
http://oldboy.blog.51cto.com/2561410/791245linux
3.描述linux shell中單引號、雙引號及不加引號的簡單區別(記時2分鐘)
簡要總結:
單引號:
能夠說是所見即所得:即將單引號內的內容原樣輸出,或者描述爲單引號裏面看到的是什麼就會輸出什麼。
雙引號:
把雙引號內的內容輸出出來;若是內容中有命令、變量等,會先把變量、命令解析出結果,而後在輸出最終內容來。網站
不加引號:
不會將含有空格的字符串視爲一個總體輸出, 若是內容中有命令、變量等,會先把變量、命令解析出結果,而後在輸出最終內容來,若是字符串中帶有空格等特殊字符,則不能完整的輸出,須要改加雙引號,通常連續的字符串,數字,路徑等能夠用。unix
實例演示:
例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
提示:awk調用shell變量在http://oldboy.blog.51cto.com/2561410/760192一文有體現。
詳細描述見:
老男孩linux運維實戰培訓-單引號和雙引號的區別詳細說明
老男孩linux運維實戰培訓-shell編程精講
老男孩linux運維實戰培訓聯繫方式
諮詢:QQ: 70271111 357851641 31333741
電話:18911718229
網站地址:http://www.etiantian.org http://oldboy.cc
blog:http://oldboy.blog.51cto.com
======================================================
歡迎廣到運維兄弟一塊兒交流linux/unix網站運維技術!
網站運維交流羣:180056518 114580181 45039636
老男孩 QQ:31333741
mail:31333741@qq.com