Bash 分析命令列的方式

2021-06-16 10:11:57 字數 695 閱讀 7186

分割管道 : 如果已使用管道,則以管道為分隔符,將指令切成各別的指令。例如:命令1 | 命令2 | 命令3,會分成3個命令

對各別命令進行以下分析

取出token:使用分隔符,如空白 tab,將命令分成token,所謂token是指組成命令的單詞,例如 ll -la test.txt 可拆成ll -la 及 test.txt 3個token

替換別名 : 檢查命令的第乙個token 是不思別名,若是別名,則把別名替換成真正的指令,例如 把ll 替換成  ls -l --color=auto

括號擴充套件 : 若token有括號擴充套件的語法,則進行展開。 如in 會展開成sbin bin

~符號擴充套件 : 若token中有家目錄的符號,則替換成實際的路徑。如~ols3替換成/home/ols3

替換變數 : 若token中含有變數,則以變數取代。如$hi 換成『hi』

替換命令 : 若token中含有 $(命令) 的形式,則把它替換成實際的執行結果。如 $(which diff) 替換成 /usr/bin/diff

替換算術 : 若有算術式,則計算其結果,並進行替換。 如$((3+5))   替換成 8

替換萬用字元 : 若token中含有 * 或 ? 的萬用字元,則替換其對應的結果。如 *.sh 替換成test.sh

根據函式 內建命令 搜尋路徑的順序,找尋第乙個token所代表的命令位於何處

執行已替換完成的指令

bash命令列解釋順序

shell從標準輸入或指令碼中讀取的每行稱為乙個管道行,它包含乙個或多個由0個或多個管道字元 分隔的命令。對每乙個管道行,進行12個步驟的處理。結合上面的插圖,這裡給出命令列的12個步驟。1.將命令列分成由固定元字符集分隔的記號 space,tab,newline,記號型別包括單詞,關鍵字,i o重...

bash命令列操作svn

cd 跳到指定檔案目錄 ls 列出當前檔案目錄下的所有子檔案 svn up 更新專案 將資源檔案從svn上打包下來 通過執行指令碼 chmod u x assets builder.php 修改許可權 assets builder.php build 壓縮 assets builder.php pa...

命令列BASH的基本操作

1.提示符 表示以根使用者登入,root使用者 管理員許可權 表示當前是以普通使用者登入 2.命令一般由三個部分組成 命令,選項,引數 3.可以通過在終端輸入命令開啟程式,在終端輸出要執行的程式名,如果要終止執行程式,可以使用ctrl c健終止當前的命令 如打 狐瀏覽器 4.如果想在後台開啟程式,而...