1、通配符
通配符 | 作用 |
---|---|
? | 匹配任意一個字符; |
* | 匹配0個或任意多個字符(即可以匹配任何內容); |
[] | 匹配中括號里任意一個字符。例如:[abc]表示匹配abc中任意一個字符; |
[-] | 匹配中括號里任意一個字符,-代表一個范圍。例如:[a-z]表示匹配任意一個小寫字母;[0-9]表示匹配任意一個數字; |
[^] | 邏輯非,表示匹配非中括號內的一個字符。例如:[^0- 9]代表匹配任意一個不是數字的字符; |
按照下方順序執行命令,將tmp目錄下面的文件清空后,創建文件123、1abc、xabc、abc、abcd。
cd /tmp/
rm -rf *
touch 123
touch 1abc
touch xabc
touch abc
touch abcd
1.1、*通配符
執行命令:ls *abc,匹配任意0個或多個字符,然后以abc結尾的。匹配結果,如下圖所示:
1.2、?通配符
執行命令:ls ?abc,匹配任意1個字符,然后以abc結尾的。匹配結果,如下圖所示:
1.3、[-]通配符
執行命令:ls [0-9]*,匹配以數字開頭的。匹配結果,如下圖所示:
1.4、[^]通配符
執行命令:ls [^0-9]*,匹配以非數字開頭的。匹配結果,如下圖所示:
2、bash中特殊符號
符號 | 作用 |
---|---|
'' | 單引號。在單引號中所有的特殊符號,如“$”和“`”(反引號)都沒有特殊含義。 |
"" | 雙引號。在雙引號中特殊符號都沒有特殊含義,但是“$”、“`” 和“\”是例外,擁有“調用變量的值”、“引用命令”和“轉義符”的特殊含義。 |
`` | 反引號。反引號括起來的內容是系統命令,在bash中會先執行它。 和$()作用一樣,不過推薦使用$(),因為反引號非常容易看錯。 |
$() | 和反引號作用一樣,用來引用系統命令。 |
# | 在shell腳本中,#開頭的行代表注釋(除首行#!/bin/bash以外,這是固定格式)。 |
$ | 用于調用變量的值,如需要調用變量name的值時,需要用$name 的方式得到變量的值。 |
\ | 轉義符,跟在\之后的特殊符號將失去特殊含義,變為普通字符。如\$將輸出“$”符號,而不當做是變量引用。 |
2.1、反引號與$()
執行命令:ls、echo `ls`、echo $(ls)。
三個命令執行結果都一樣,如下圖所示:
2.2、單引號與雙引號
定義變量name,給name賦值zhoujielun。然后分別調用命令echo '$name' 和 echo "$name"。輸出結果如下圖所示:
單引號直接將引號內部的信息輸出來了。雙引號是輸出了變量name的值。
注意:如果調用 echo '$name" 或 echo "$name' ,并非完整的一個單引號或雙引號。這種情況下執行命令,會要求你輸入命令一直到匹配到完整的引號為止。