1. 程式人生 > >Linux學習之Shell基礎——Bash基本功能——萬用字元和其他特殊符號

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 

[[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指令碼中第一行,表示標識。