Shell
中的特殊字元
作者:
zccst
Shell
除了作為命令解釋程式以外,還是一種進階程式設計語言。利用
Shell
程式設計語言可以編寫出功能很強、但代碼簡單的程式。
建立
Shell
過程的步驟同建立普通文字檔相同,利用編輯器(如
vi
或
gedit
)進行程式錄入和編輯加工。
執行
Shell
過程的方式主要有以下
3
種。
(
1
)輸入定向到
Shell
過程
(
2
)以過程名作為參數
(
3
)將
Shell
過程改為可執行檔
Shell
中的特殊字元
1
,萬用字元
萬用字元用於模式比對,如檔案名稱匹配、路徑名搜尋、字串尋找等。
2
,引號
在
Shell
中引號分為
2
種:單引號、雙引號。
(
1
)雙引號
由雙引號括起來的字元,除
$
、倒引號和反斜線(
/
)仍保留其特殊功能外,其餘字元通常作為一般字元對待。
(
2
)單引號
由單引號括起來的字元都作為一般字元出現。
3
.輸入輸出重新導向符
執行一個
Shell
命令時通常會自動開啟
3
個標準檔案,這就是:標準輸入檔案(
stdin
),通常對應終端的鍵盤;標準輸出檔案(
stdout
)和標準出錯輸出檔案(
stderr
),這兩個檔案都對應終端的螢幕。
在
Shell
中,這
3
個檔案都可以通過重新定向符進行重新定向。
(
1
)輸入重新導向符
輸入重新導向符“
<
”的作用是把命令(或可執行程式)的標準輸入重新定向到指定檔案。
(
2
)輸出重新導向符
輸出重新導向符
“>”
的作用是把命令(或可執行程式)的標準輸出重新導向到指定檔案。這樣,該命令的輸出就不在螢幕上顯示,而是寫入指定檔案中。例如,
$who > abc
命令
who
的輸出重新定向到
abc
檔案中,在螢幕上看不到執行
who
的結果。
註:這個命令以前用過但不明白為什麼這樣用,現在明白了。
4
.注釋、管道線和後台命令
(
1
)注釋
如前所述,
Shell
程式中以
#
開頭的本文行表示注釋。
(
2
)管道線
在
Linux
系統中管道線是由豎杠(
|
)隔開的若干個命令組成的序列,例如,
ls –l $HOME |
wc−l
在管道線中,每個命令運行時都有一個獨立的進程。前一個命令的輸出正是下一個命令的輸入。而管道線中有一類命令也稱作“過濾器”,過濾器首先讀取輸入,然後將輸入以某種簡單方式進行變換(相當於過濾),再將處理結果輸出,例如
grep
、
tail
、
sort
和
wc
等命令就稱為過濾器。
一個管道線中可以包括多條命令,例如,
ls | grep m?.c | wc –l
列印出目前的目錄檔案名稱是以
m
打頭、後隨一個字元的所有
C
檔案的數目。
註:
wc
命令功能是
統計指定檔案中的位元組數、字數、行數
,
並將統計結果顯示輸出(
-c
統計位元組數。
-l
統計行數。
-w
統計字數。)。
(
3
)後台命令
通常,在主提示符之後輸入的命令都立即得到執行。在執行過程中,使用者和系統可以發生互動作用
—
使用者輸入資料,系統進行處理,並輸出運行結果。這種工作方式就是前台方式。
但是有些程式的運行要花費較長時間,如調用
C
編譯對
C
程式進行編譯。如果想在編譯的同時做別的事情,那麼就輸入命令
$cc m1.c&
即在一條命令的最後輸入
“&”
符號,
Shell
就在後台啟動該程式,並且馬上顯示主提示符,提醒輸入新的命令。