bash特殊符號

2021-06-19 13:36:05 字數 1638 閱讀 8724

bash的萬用字元與特殊符號

在 bash 的操作環境中還有乙個非常有用的功能,那就是萬用字元 (wildcard) ! 我們利用 bash 處理資料就更方便了!底下我們列出一些常用的萬用字元喔:

符號意義

*代表『 0 個到無窮多個』任意字元

?代表『一定有乙個』任意字元

[ ]同樣代表『一定有乙個在括號內』的字元(非任意字元)。例如 [abcd] 代表『一定有乙個字元, 可能是 a, b, c, d 這四個任何乙個』

[ - ]

若有減號在中括號內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表 0 到 9 之間的所有數字,因為數字的語系編碼是連續的!

[^ ]

若中括號內的第乙個字元為指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有乙個字元,只要是非 a, b, c 的其他字元就接受的意思。

接下來讓我們利用萬用字元來玩些東西吧!首先,利用萬用字元配合 ls 找檔名看看:

[root@www ~]# lang=c              <==由於與編碼有關,先配置語系一下

範例一:找出 /etc/底下以 cron 為開頭的檔名

[root@www ~]# ll -d /etc/cron* <==加上 -d 是為了僅顯示目錄而已

範例二:找出 /etc/底下檔名『剛好是五個字母』的檔名

[root@www ~]# ll -d /etc/????? <==由於 ? 一定有乙個,所以五個 ?就對了

範例三:找出 /etc/底下檔名含有數字的檔名

[root@www ~]# ll -d /etc/*

[0-9]* <==記得中括號左右兩邊均需 *

範例四:找出 /etc/ 底下,檔名開頭非為小寫字母的檔名:

[root@www ~]# ll -d /etc/[^a-z]* <==注意中括號左邊沒有 *

範例五:將範例四找到的檔案複製到 /tmp 中

[root@www ~]# cp -a /etc/[^a-z]* /tmp

除了萬用字元之外,bash 環境中的特殊符號有哪些呢?底下我們先匯整一下:

符號內容

#批註符號:這個最常被使用在 script 當中,視為說明!在後的資料均不執行

\跳脫符號:將『特殊字元或萬用字元』還原成一般字元

|管線 (pipe):分隔兩個管線命令的界定(後兩節介紹);

;連續命令下達分隔符:連續性命令的界定 (注意!與管線命令並不相同)

~使用者的家目錄

$取用變數前導符:亦即是變數之前需要加的變數取代值

&工作控制 (job control):將命令變成背景下工作

!邏輯運算意義上的『非』 not 的意思!

/目錄符號:路徑分隔的符號

>, >>

資料流重導向:輸出導向,分別是『取代』與『累加』

資料流重導向:輸入導向 (這兩個留待下節介紹)

' '單引號,不具有變數置換的功能

" "具有變數置換的功能!

` `兩個『 ` 』中間為可以先執行的命令,亦可使用 $( )

( )在中間為子 shell 的起始與結束

在中間為命令區塊的組合!

以上為 bash 環境中常見的特殊符號彙整!理論上,你的『檔名』盡量不要使用到上述的字元啦!

bash中的特殊符號

bash中的特殊符號 批註符號,視為說明,後面的資料均不執行 轉義符號,將 特殊字元和萬用字元 還原成一般字元 管道pipe,分割2個管道命令的界定 連續命令執行的分隔符,連續性命令的界定 使用者的主資料夾 使用變數前導符 job control 作業控制,將命令變成背景下工作 邏輯運算意義上的非 ...

bash的萬用字元與特殊符號

在 bash 的操作環境中還有乙個非常有用的功能,那就是萬用字元 wildcard 我們利用 bash 處理資料就更方便了!底下我們列出一些常用的萬用字元喔 符號意義 代表 0 個到無窮多個 任意字元 代表 一定有乙個 任意字元 同樣代表 一定有乙個在括號內 的字元 非任意字元 例如 abcd 代表...

bash之特殊符號的使用

1.3 特殊符號的使用 雙引號用於括起一段字串值,支援 var形式的變數替換 a ls echo a 輸出結果是 ls 單引號也表示其內容是字串值,不支援轉義 a ls echo a 輸出結果是 ls 反引號的作用就是將反引號裡面的內容當做命令執行。必須是shell真的存在的命令 a ls echo...