linux中的萬用字元 元字元 轉義符

2021-07-03 17:47:29 字數 1163 閱讀 7654

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會將其當作路徑或檔名去在磁碟上搜尋可能的匹配 若符合要求的匹...