shell命令執行過程


1.從腳本或終端或bash -c選項后的字符串中獲取輸入

2.將獲取的輸入分解成詞元(token),此步驟會執行別名(alisa)展開

1)shell識別出的一個字符序列單元稱為詞元,shell一般通過元字符(metacharacter)將得到的輸入進行分割,得到若干個詞元,再對詞元進行處理。

2)shell的元字符有:space,tab, newline,‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, or ‘>’.元字符用於詞元分割符;

3)shell中的詞(word):不包含非轉義元字符的字符序列;

4)shell中的操作符(operator):newline,‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘;&’, ‘;;&’, ‘|’, ‘|&’, ‘(’, or ‘)’.

5)詞和操作符都是詞元

3.將詞解析為簡單命令或復合命令

1)簡單命令是由空格進行分割的詞組成的序列

2)復合命令包括循環結構,條件結構,命令組

4.執行各種shell展開

1)shell主要有七大展開:大括號展開,波浪符展開,參數展開,命令替換,算術展開,分詞,文件名展開;

2)展開執行完后,沒有轉義的\,',”會被移除。

5.執行必要的重定向,

6.執行命令

如果命令中包含/,則執行制定路徑的程序;如果命令中不包含/,會檢查是否是shell函數,shell內建命令,如果都不是,則在PATH環境變量中的路徑進行查找。

7.等待命令結束獲取命令執行狀態


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM