1顷蟆、通配符
通配符 | 作用 |
---|---|
? | 匹配任意一個字符; |
* | 匹配0個或任意多個字符(即可以匹配任何內(nèi)容)腐魂; |
[] | 匹配中括號里任意一個字符帐偎。例如:[abc]表示匹配abc中任意一個字符; |
[-] | 匹配中括號里任意一個字符挤渔,-代表一個范圍肮街。例如:[a-z]表示匹配任意一個小寫字母;[0-9]表示匹配任意一個數(shù)字判导; |
[^] | 邏輯非嫉父,表示匹配非中括號內(nèi)的一個字符。例如:[^0- 9]代表匹配任意一個不是數(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個或多個字符成榜,然后以abc結(jié)尾的。匹配結(jié)果蹦玫,如下圖所示:
1.2赎婚、?通配符
執(zhí)行命令:ls ?abc,匹配任意1個字符樱溉,然后以abc結(jié)尾的挣输。匹配結(jié)果,如下圖所示:
1.3福贞、[-]通配符
執(zhí)行命令:ls [0-9]*撩嚼,匹配以數(shù)字開頭的。匹配結(jié)果,如下圖所示:
1.4完丽、[^]通配符
執(zhí)行命令:ls [^0-9]*向瓷,匹配以非數(shù)字開頭的。匹配結(jié)果舰涌,如下圖所示:
2猖任、bash中特殊符號
符號 | 作用 |
---|---|
'' | 單引號。在單引號中所有的特殊符號瓷耙,如“$”和“`”(反引號)都沒有特殊含義朱躺。 |
"" | 雙引號。在雙引號中特殊符號都沒有特殊含義搁痛,但是“$”长搀、“`” 和“\”是例外,擁有“調(diào)用變量的值”鸡典、“引用命令”和“轉(zhuǎn)義符”的特殊含義源请。 |
`` | 反引號。反引號括起來的內(nèi)容是系統(tǒng)命令彻况,在bash中會先執(zhí)行它谁尸。 和$()作用一樣,不過推薦使用$()纽甘,因?yàn)榉匆柗浅H菀卓村e良蛮。 |
$() | 和反引號作用一樣,用來引用系統(tǒng)命令悍赢。 |
# | 在shell腳本中决瞳,#開頭的行代表注釋(除首行#!/bin/bash以外,這是固定格式)左权。 |
$ | 用于調(diào)用變量的值皮胡,如需要調(diào)用變量name的值時,需要用$name 的方式得到變量的值赏迟。 |
\ | 轉(zhuǎn)義符屡贺,跟在\之后的特殊符號將失去特殊含義,變?yōu)槠胀ㄗ址俟!H鏫$將輸出“$”符號烹笔,而不當(dāng)做是變量引用裳扯。 |
2.1抛丽、反引號與$()
執(zhí)行命令:ls、echo `ls`饰豺、echo $(ls)亿鲜。
三個命令執(zhí)行結(jié)果都一樣,如下圖所示:
2.2、單引號與雙引號
定義變量name蒿柳,給name賦值zhoujielun饶套。然后分別調(diào)用命令echo '$name' 和 echo "$name"。輸出結(jié)果如下圖所示:
單引號直接將引號內(nèi)部的信息輸出來了垒探。雙引號是輸出了變量name的值妓蛮。
注意:如果調(diào)用 echo '$name" 或 echo "$name' ,并非完整的一個單引號或雙引號圾叼。這種情況下執(zhí)行命令蛤克,會要求你輸入命令一直到匹配到完整的引號為止。