Linux學習之Shell基礎——Bash基本功能——萬用字元和其他特殊符號
1、萬用字元
萬用字元 | 作用 |
? | 匹配一個任意字元 |
* | 匹配0個或任意多個任意字元,也就是可以匹配任何內容 |
[ ] | 匹配中括號中任意一個字元。例如:[abc]代表一定匹配一個字元,或者是a,或者是b,或者是c。 |
[ - ] | 匹配中括號中任意一個字元,—代表一個範圍。例如:[a-z] 代表匹配一個小寫字母 |
[ ^ ] | 邏輯非,表示匹配不是中括號內的一個字元。例如:[ ^0-9]代表匹配一個不是數字的字元 |
示例:
[[email protected] ~]# cd /tmp/ 進入到/tmp/目錄中,因為下面要演示一個刪除操作,/tmp/作為臨時目錄,做一些操作對系統本身影響小。
[[email protected] tmp]# ls 查詢當前目錄下的檔案
[[email protected] tmp]# rm rf * 刪除/tmp/目錄下所有的內容
[[email protected] tmp# ls 此刻執行完,應該什麼內容都沒有
[[email protected] tmp]# touch abc 在當前目錄下建立一個檔案abc
[[email protected] tmp]# touch abcd 在當前目錄下建立一個檔案abcd
[[email protected] tmp]# touch 123 在當前目錄下建立一個檔案123
[[email protected] tmp]# touch 0abc 在當目錄下建立一個檔案0abc
[[email protected] ~]# ls *abc 查詢末尾為abc的任意檔案
[[email protected] ~]# ls *abc* 查詢檔名中間為abc的檔案
[[email protected] ~]# ls ?abc 查詢檔名為4個字元,且末尾是abc
[[email protected] ~]# ls [0-9]abc 表示查詢開頭為一個數字,末尾是abc的檔案
[[email protected] ~]# ls [^0-9]abc 表示查詢開頭不是數 字的末尾是abc的檔案
2、Bash中其他特殊符號
符號 | 作用 |
' ' | 單引號。在單引號中所有的特殊符號,如“$”和“ ` ”(反引號)都沒有特殊含義 |
“ ” | 雙引號。在雙引號中特殊符號都沒有特殊含義,但是“$”、“ 、”和“ · ”是例外,擁有“呼叫變數的值”、“引用命令”和“轉義符”的特殊含義 |
· · | 反引號。反引號括起來的內容是系統命令,在Bash中會先執行它。和$()作用一樣,不過推薦使用$(),因為反引號非常容易看錯 |
# | 在shell指令碼中,#開頭的行代表註釋 |
$ | 用於呼叫變數的值,如需要呼叫變數name的值時,需要用$name的方式得到變數的值 |
\ | 轉義符,跟在\之後的特殊符號將失去特殊含義,變為普通字元。如\$將輸出“$”符號,而不得當做是變數引用 |
$() | 和反引號作用一樣,用來引用系統命令 |
1)單引號與雙引號:
[[email protected] tmp]# name=sc
[[email protected] tmp]# echo $name
sc
[[email protected] tmp]# echo '$name'
$name
[[email protected] tmp]# echo "$name"
sc
[[email protected] tmp]#
2)反引號$()的作用:
[[email protected] ~]# abc=`date`
[[email protected] ~]# echo $abc
2018年 12月 16日 星期日 15:16:27 CST
[[email protected] ~]# abc=$(date)
[[email protected] ~]# echo $abc
2018年 12月 16日 星期日 15:17:11 CST
[[email protected] ~]#
[[email protected] ~]# echo $(ls)
abc anaconda-ks.cfg cde cdef install.log install.log.syslog sh testfile 公共的 模板 視訊 圖片 文件 下載 音樂 桌面
[[email protected] ~]# echo '$name'
$name
[[email protected] ~]# echo `$name`
-bash: sc: command not found
[[email protected] ~]# echo "$name"
sc
[[email protected] ~]# echo '$(date)'
$(date)
[[email protected] ~]# echo "$(date)"
2018年 12月 16日 星期日 15:20:26 CST
[[email protected] ~]#
總結:雙引號括起來的內容中有特殊符號;
反引號和$() 呼叫的內容表示系統命令
#表示註釋,特殊除外。比如shell指令碼中第一行,表示標識。