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

 

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