1、通配符
| 通配符 | 作用 |
|---|---|
| ? | 匹配任意一個(gè)字符; |
| * | 匹配0個(gè)或任意多個(gè)字符(即可以匹配任何內(nèi)容); |
| [] | 匹配中括號(hào)里任意一個(gè)字符。例如:[abc]表示匹配abc中任意一個(gè)字符; |
| [-] | 匹配中括號(hào)里任意一個(gè)字符,-代表一個(gè)范圍。例如:[a-z]表示匹配任意一個(gè)小寫(xiě)字母;[0-9]表示匹配任意一個(gè)數(shù)字; |
| [^] | 邏輯非,表示匹配非中括號(hào)內(nèi)的一個(gè)字符。例如:[^0- 9]代表匹配任意一個(gè)不是數(shù)字的字符; |
按照下方順序執(zhí)行命令,將tmp目錄下面的文件清空后,創(chuàng)建文件123、1abc、xabc、abc、abcd。
cd /tmp/
rm -rf *
touch 123
touch 1abc
touch xabc
touch abc
touch abcd

1.1、*通配符
執(zhí)行命令:ls *abc,匹配任意0個(gè)或多個(gè)字符,然后以abc結(jié)尾的。匹配結(jié)果,如下圖所示:

1.2、?通配符
執(zhí)行命令:ls ?abc,匹配任意1個(gè)字符,然后以abc結(jié)尾的。匹配結(jié)果,如下圖所示:

1.3、[-]通配符
執(zhí)行命令:ls [0-9]*,匹配以數(shù)字開(kāi)頭的。匹配結(jié)果,如下圖所示:

1.4、[^]通配符
執(zhí)行命令:ls [^0-9]*,匹配以非數(shù)字開(kāi)頭的。匹配結(jié)果,如下圖所示:

2、bash中特殊符號(hào)
| 符號(hào) | 作用 |
|---|---|
| '' | 單引號(hào)。在單引號(hào)中所有的特殊符號(hào),如“$”和“`”(反引號(hào))都沒(méi)有特殊含義。 |
| "" | 雙引號(hào)。在雙引號(hào)中特殊符號(hào)都沒(méi)有特殊含義,但是“$”、“`” 和“\”是例外,擁有“調(diào)用變量的值”、“引用命令”和“轉(zhuǎn)義符”的特殊含義。 |
| `` | 反引號(hào)。反引號(hào)括起來(lái)的內(nèi)容是系統(tǒng)命令,在bash中會(huì)先執(zhí)行它。 和$()作用一樣,不過(guò)推薦使用$(),因?yàn)榉匆?hào)非常容易看錯(cuò)。 |
| $() | 和反引號(hào)作用一樣,用來(lái)引用系統(tǒng)命令。 |
| # | 在shell腳本中,#開(kāi)頭的行代表注釋(除首行#!/bin/bash以外,這是固定格式)。 |
| $ | 用于調(diào)用變量的值,如需要調(diào)用變量name的值時(shí),需要用$name 的方式得到變量的值。 |
| \ | 轉(zhuǎn)義符,跟在\之后的特殊符號(hào)將失去特殊含義,變?yōu)槠胀ㄗ址?。如\$將輸出“$”符號(hào),而不當(dāng)做是變量引用。 |
2.1、反引號(hào)與$()
執(zhí)行命令:ls、echo `ls`、echo $(ls)。
三個(gè)命令執(zhí)行結(jié)果都一樣,如下圖所示:

2.2、單引號(hào)與雙引號(hào)
定義變量name,給name賦值z(mì)houjielun。然后分別調(diào)用命令echo '$name' 和 echo "$name"。輸出結(jié)果如下圖所示:

單引號(hào)直接將引號(hào)內(nèi)部的信息輸出來(lái)了。雙引號(hào)是輸出了變量name的值。
注意:如果調(diào)用 echo '$name" 或 echo "$name' ,并非完整的一個(gè)單引號(hào)或雙引號(hào)。這種情況下執(zhí)行命令,會(huì)要求你輸入命令一直到匹配到完整的引號(hào)為止。
