鍍金池/ 教程/ Linux/ shell 學(xué)習(xí)三十七天---引用
shell 學(xué)習(xí)四十五天---xargs
shell學(xué)習(xí)第三天
shell 學(xué)習(xí)十五天---join 連接字段
shell 學(xué)習(xí)第二天
shell 學(xué)習(xí)四十三天---臨時(shí)性文件的建立與使用
shell 學(xué)習(xí)第六天---小結(jié)
shell 學(xué)習(xí)三十三天---關(guān)于重定向
shell 學(xué)習(xí)二十九天---循環(huán)
shell 學(xué)習(xí)二十四天---提取開頭或結(jié)尾數(shù)行
shell 學(xué)習(xí)第十天---sed 查找與替換
shell 學(xué)習(xí)第十一天---sed 正則的精確控制
shell 學(xué)習(xí)三十天---break,continue,shift,getopts
shell 學(xué)習(xí)---小結(jié)
shell 學(xué)習(xí)三十一天---函數(shù)問題
shell 學(xué)習(xí)第四天---華麗的 printf 輸出
shell 學(xué)習(xí)三十五天---波浪號(hào)展開與通配符
shell 學(xué)習(xí)十九天---文本塊排序
shell 學(xué)習(xí)十二天---行與字符串
shell 學(xué)習(xí)二十一天---重新格式化段落
shell 學(xué)習(xí)十八天---文本排序
shell 學(xué)習(xí)十三天---sed 案例分析
shell 學(xué)習(xí)四十一天---列出文件 ls 和 od 命令
shell 學(xué)習(xí)十七天---awk 命令
shell 學(xué)習(xí)三十六天---命令替換
shell 學(xué)習(xí)十六天---join 練習(xí)
shell 學(xué)習(xí)三十二天---read 讀取一行
shell 學(xué)習(xí)二十二天---計(jì)算行數(shù),字?jǐn)?shù)以及字符數(shù)
shell 學(xué)習(xí)小總結(jié)---本章小結(jié)
shell 學(xué)習(xí)第八天---擴(kuò)展正則表達(dá)式(ERE)
shell 學(xué)習(xí)四十二天---使用 touch 更新文件時(shí)間
shell 學(xué)習(xí)二十八天---case 語句
shell 學(xué)習(xí)三十九天---內(nèi)建命令
shell 學(xué)習(xí)第一天
shell 學(xué)習(xí)三十四天---printf 詳解
shell 學(xué)習(xí)二十六天---變量與算數(shù)
shell 學(xué)習(xí)三十八天---執(zhí)行順序和 eval
shell 學(xué)習(xí)四十四天---尋找文件
shell 學(xué)習(xí)二十五天---神器的管道符
shell 學(xué)習(xí)十四天---使用 cut 選定字段
shell 學(xué)習(xí)第五天---基本的I/O重定向
shell 學(xué)習(xí)四十天---awk 的驚人表現(xiàn)
shell 學(xué)習(xí)二十天---sort 的其他內(nèi)容以及 uniq 命令
shell 學(xué)習(xí)二十三天---打印
shell 學(xué)習(xí)第九天---分組
shell 學(xué)習(xí)四十八天---文件校驗(yàn)和匹配
shell 學(xué)習(xí)二十七天---退出狀態(tài)和 if 語句
shell 學(xué)習(xí)四十七天---文件比較 cmp,diff,patch
shell 學(xué)習(xí)第七天---基礎(chǔ)正則表達(dá)式(BRE)
shell 學(xué)習(xí)四十六天---文件系統(tǒng)的空間信息 df 和 du 命令
shell 學(xué)習(xí)三十七天---引用
shell 學(xué)習(xí)小結(jié)

shell 學(xué)習(xí)三十七天---引用

案例,如果我想輸出一個(gè)星號(hào)(),使用 echo 如何做?
echo

這是肯定不行的,需要將轉(zhuǎn)移,即:echo *
這樣就引出了引用的概念.所為引用,是用來防止 shell 將某些你想要的東西解釋成不同的意義.如果你希望某些可能被 shell 視為個(gè)別參數(shù)的東西保持為單個(gè)參數(shù),這時(shí)你就必須將其引用.
引用的三種方式:
反斜杠轉(zhuǎn)義
字符前置反斜杠(),用來告知 shell 該字符即為其字面上的意義. 單引號(hào)
單引號(hào)(‘...’)強(qiáng)制 shell 將一對(duì)引號(hào)之間的所有字符都看做其字面上的意義.shell 腳本會(huì)刪除這兩個(gè)引號(hào),只單獨(dú)留下被括起來的完整文字內(nèi)容:
命令:```echo 'here are some character
? $ \'``` 輸出:```here are some character * ? $ ```
不能再一個(gè)單引號(hào)引用的字符串里再內(nèi)嵌一個(gè)單引號(hào).即使是反斜杠,在單引號(hào)里也沒有特殊意義(某些系統(tǒng)里,像 echo ‘A\tB’這樣的命令看起來像是 shell 特別的處理反斜杠,其實(shí)不然,這是 echo 命令本身有特殊的處理方式)

如需混用單引號(hào)和雙引號(hào),可以小心的使用反斜杠轉(zhuǎn)義以及不同引用字符串的連接來做到:
命令:echo 'he said "how'\''s tricks?"'
輸出:he said "how's tricks?"
命令”echo "she replied ,\"movin' along\""
輸出:she replied ,"movin' along"
不管怎么處理,這種結(jié)合方式永遠(yuǎn)是很難閱讀的.
雙引號(hào)
雙引號(hào)(“...”)就像單引號(hào)那樣,將括起來的文字視為單一字符串.只不過,雙引號(hào)會(huì)確切的處理括起來文字中的轉(zhuǎn)義字符和變量,算術(shù),命令替換:

x=hahaha  
echo “$x”  

輸出:hahaha
在雙引號(hào)里,字符$,”,`與\,如需用到字面上的意義,都必須前置.任何其他字符前面的反斜杠是不帶特殊意義的.序列-newline 會(huì)完全的被刪除,就好像是用在腳本里的正文中一樣.
單引號(hào)被括在雙引號(hào)里時(shí)就無特殊意義了,他們不必承兌,也不許轉(zhuǎn)移.
命令:echo "hahah'"
輸出:hahah'

一般來說,使用單引號(hào)的時(shí)機(jī)是希望完全不處理的地方.否則,當(dāng)希望將多個(gè)單詞視為單一字符串,但又需要 shell 為你做些事情,此時(shí)使用雙引號(hào),例如將一個(gè)變量值與另一個(gè)變量值連在一起:
oldvar=”$oldvar $newvar”