1:Linux命令行處理流程及解釋
1):利用分割符分割命令行為獨立的記號(分割符包含space,new line,table,;,(,),<,>,|,&)
2):檢查第一個記號,查看是否不為引號,反斜槓關鍵字。
3):檢查別名列表是否有別名相匹配,有就進行別名替換並返回第一步。
4):進行大括號擴展 ,如:a{b,c}=ab ac
5):如果以~開頭的用$HOME代替。
6):對以$開頭的進行參數(變量)替換。
7):對形式$(sting)進行命令替換。
8):計算形式$((sting))的算術表達式。
9):把行的參數,命令,算術表達式部分再次進行劃分,這次以space, tab, new line為分割符。
10):對出現的*,?,[/]執行路徑名擴展,
11):按命令優先級(跳過別名),進行命令查找。
12):設置完I/O重定向和其他操作後執行命令。
2:關於引號
1):單引號跳過1-10。
2):雙引號跳過1-5,9-10。
也就是說雙引號中參數替換,命令替換,算術表達式會被執行。