example
reference
每條linux命令中的每個character都是以下兩種之一:
- literal:普通純文字
- 保留字:萬用字元、元字元、轉義字元
萬用字元是由shell處理的(不是由所涉及到命令語句處理的,其實我們在shell各個命令中也沒有發現有這些萬用字元介紹), 它只會出現在命令的「引數」裡(它不用在命令名稱裡,也不用在操作符上)。當shell在「引數」中遇到了萬用字元時,shell會將其當作路徑或檔名去在磁碟上搜尋可能的匹配:若符合要求的匹配存在,則進行代換(路徑擴充套件);否則就將該萬用字元作為乙個普通字元傳遞給「命令」,然後再由命令進行處理。總之,萬用字元實際上就是一種shell實現的路徑擴充套件功能。在萬用字元被處理後, shell會先完成該命令的重組,然後再繼續處理重組後的命令,直至執行該命令。
萬用字元和正規表示式看起來很像,但其實不同,它只是shell的特殊字元而已。
當我們要關閉meta的功能時,就用到了轉義符。
dquote中不被關閉的meta:$
,反引號`
,反斜槓\
。
➜ ~ ls -d p* # 以p開頭的檔案
pictures projects public
➜ ~ a=b c #未被關閉,作為ifs處理。
zsh: command not found: c
➜ ~ a="b c"
#在"中被關閉,當作普通字元使用
➜ ~ echo
$ab c
➜ ~ a="b
dquote> c
dquote> "
#在"中被關閉,當作普通字元使用,由於command line沒有得到cr字元,因此進入第二個shell prompt(以》符號表示)。
➜ ~ echo$ab
c➜ ~ a=b\ c # \使的功能關閉,僅當普通空格使用
➜ ~ echo
'$a'
# $在squote中功能關閉,僅作literal
$a➜ ~ echo
"$a"
# $在dquote中功能未關閉,作meta用
b c➜ ~ echo \$a
$a➜ ~
linux引用符 萬用字元 元字元 轉義符
一 引用符 引用符號在解析器中保護特殊元字元和引數擴充套件,其使用方法有3種 反斜槓 單引號 雙引號 單引號和雙引號必須匹配使用,均可在解析器中保護特殊元字元和萬用字元,但是單引號 硬轉義 主要用於資訊的原樣輸出,防止任何變數的擴充套件,雙引號 軟轉義 允許變數擴充套件 轉義符和命令替換。單引號保護...
Linux Shell 萬用字元 元字元 轉義符使用
shell常見萬用字元 字元含義例項 匹配 0 或多個字元 a b a與b之間可以有任意長度的任意字元,也可以乙個也沒有,如aabcb,axyzb,a012b,ab。匹配任意乙個字元 a?b a與b之間必須也只能有乙個字元,可以是任意字元,如aab,abb,acb,a0b。list 匹配 list ...
linuxshell轉義符元字元萬用字元特殊字元彙總
萬用字元是由shell處理的 不是由所涉及到命令語句處理的,其實我們在shell各個命令中也沒有發現有這些萬用字元介紹 它只會出現在命令的 引數 裡 它不用在命令名稱裡,也不用在操作符上 當shell在 引數 中遇到了萬用字元時,shell會將其當作路徑或檔名去在磁碟上搜尋可能的匹配 若符合要求的匹...