linux shell單引號、雙引號及無引號區別(考試題答案系列)

說明:本文爲老男孩linux培訓某節課前考試試題及答案分享博文內容的一部分,也是獨立成題的,你能夠點下面地址查看所有的內容信息。
http://oldboy.blog.51cto.com/2561410/791245linux

3.描述linux shell中單引號、雙引號及不加引號的簡單區別(記時2分鐘) shell

簡要總結: 編程

單引號: 運維

能夠說是所見即所得:即將單引號內的內容原樣輸出,或者描述爲單引號裏面看到的是什麼就會輸出什麼。 ide

雙引號: 測試

把雙引號內的內容輸出出來;若是內容中有命令、變量等,會先把變量、命令解析出結果,而後在輸出最終內容來。網站

不加引號: spa

不會將含有空格的字符串視爲一個總體輸出, 若是內容中有命令、變量等,會先把變量、命令解析出結果,而後在輸出最終內容來,若是字符串中帶有空格等特殊字符,則不能完整的輸出,須要改加雙引號,通常連續的字符串,數字,路徑等能夠用。unix

實例演示: orm

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

相關文章
相關標籤/搜索