Shell基礎 Shell執行過程

2021-10-06 07:06:50 字數 587 閱讀 3696

shell讀取並執行命令時,基本上會執行如下操作:

根據引號規則,將輸入分為word和operator。word和operator統稱為token,token之間用metacharacter分隔(space, tab, newline, |, &, ;, (, ), <, >).

alias expansion也在這一步執行。

將tokens(words和operators)解析為簡單命令或復合命令

執行各種shell擴充套件,將擴充套件的tokens分解為檔名、命令和引數列表。

擴充套件:內的表示式擴充套件。

~擴充套件:〜字元的擴充套件

shell引數擴充套件:將變數擴充套件為其值。

命令替換:使用命令的輸出作為引數。

算術擴充套件:在shell擴充套件中使用算術。

程序替換:一種在命令之間進行讀寫的方法。

word拆分:擴充套件結果拆分為單獨的引數。

檔名擴充套件:用於指定檔名匹配模式的簡寫。

刪除引號:從單詞中刪除引號字元。

執行任何必要的重定向,並從引數列表中刪除重定向運算子及其運算元。

執行命令

(可選)等待命令完成並收集其exit status。

shell基礎 shell檔案的執行方式

sh檔案為linux的指令碼檔案 假如有乙個檔案test.sh,指令碼內容如下 bin bash echo step 1 sleeping sleep 200 echo step 2 sleeping sleep 200 1 第一種方式,是在當前的shell執行指令碼本身,也就是說把test.sh當...

shell 執行shell指令碼

bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 shell。echo 命令用於向視窗輸出文字。1 作為可執行程式 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼注意,一定要寫成 test...

shell執行 shell多程序執行

shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。cat test.txt grep abc abc.txt 將test.txt所有包含abc的行提取到abc.txt中多個處理都這樣來...