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

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

引用

案例,如果我想輸出一個星號 (*),使用 echo 如何做? echo *這是肯定不行的,需要將 * 轉(zhuǎn)移,即:echo \*

這樣就引出了引用的概念。所為引用,是用來防止 shell 將某些你想要的東西解釋成不同的意義。如果你希望某些可能被 shell 視為個別參數(shù)的東西保持為單個參數(shù),這時你就必須將其引用。

引用的三種方式:

  • 反斜杠轉(zhuǎn)義
    • 字符前置反斜杠 (\),用來告知 shell 該字符即為其字面上的意義。
  • 單引號

    • 單引號 ('...') 強(qiáng)制 shell 將一對引號之間的所有字符都看做其字面上的意義。shell 腳本會刪除這兩個引號,只單獨(dú)留下被括起來的完整文字內(nèi)容:

      
      命令:echo 'here are some character * ? ` $ \'
      輸出:here are some character * ? ` $ \
      不能再一個單引號引用的字符串里再內(nèi)嵌一個單引號。即使是反斜杠,在單引號里也沒有特殊意義 (某些系統(tǒng)里,像 echo ‘A\tB’這樣的命令看起來像是 shell 特別的處理反斜杠,其實(shí)不然,這是 echo 命令本身有特殊的處理方式)```
    • 如需混用單引號和雙引號,可以小心的使用反斜杠轉(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)是很難閱讀的。
  • 雙引號
    • 雙引號 ('...') 就像單引號那樣,將括起來的文字視為單一字符串。只不過,雙引號會確切的處理括起來文字中的轉(zhuǎn)義字符和變量,算術(shù),命令替換:
      x=hahaha
      echo “$x”
      輸出:hahaha
    • 在雙引號里,字符 $,",' 與 \,如需用到字面上的意義,都必須前置 \。任何其他字符前面的反斜杠是不帶特殊意義的。序列 \-newline 會完全的被刪除,就好像是用在腳本里的正文中一樣。單引號被括在雙引號里時就無特殊意義了,他們不必承兌,也不許轉(zhuǎn)移。
      命令:echo "hahah'"
      輸出:hahah'

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