也可以非互動使用,可能直接執行另一個程式要求的指令,沒有輸入指令個過程,或沒人可以看到輸出 (例如寫到 log 檔)。
執行 shell 可以是登入動作的一部分 (login shell),通常會順便設定使用者需要的環境。 不是登入動作執行的 shell 就是 non-login shell。
多數 shell 可將多個指令寫在檔案裡面成為指令搞來執行,並提供額外程式結構而可擴展為程式語言。
大部份 Unix/Linux 系統有多個 shell 可選擇,如 bash、csh、ksh、sh、tcsh、zsh 等,有不同的選項和功能。
說明:
- Shell:可以是輸入文字的命令列界面 (Command Line Interface, CLI),也可以是圖形使用者界面 (Graphical User Interface, GUI)。CLI 是個互動式的指令語言,也可以作為作業系統的命令檔語言用來控制電腦如何執行,稱為 Shell Script。
- 指令語言直譯器 (command language interpreter):是指令直譯器,也是程式語言。作為指令直譯器,提供各式指令。作為程式語言,這些指令可以組合起來,建立包含指令的檔案成為一個指令,客製化用戶環境來自動化完成日常工作。
shell 可以同步地或非同步地執行指令。同步的話,shell 等候指令完成才讀取下個指令。非同步的話,現行指令跟 shell 再去執行下個指令持續並行進行。轉向架構允許精確控制指令的輸出入。再則,shell 可設定指令執行環境的內容。
shell 提供內建指令實作一些外部程式不方便處理的功能,例如 cd、break、continue、及 exec 直接處置 shell 自己,無法在外部程式實作。history、getopts、kill、或 pwd 等內建指令可以在外部實作,但使用內建指令較方便。
雖然 shell 執行指令是重要的基本功能,大部分複雜的地方在於內建程式語言功能,像許多高階語言,shell 也提供變數、流程控制架構、quoting、及函數。
shell 特別為互動使用提供許多功能,包括 job control、指令行編輯、command history 及 aliases。
IO 導向
Shell 變數字串處理
正規表示式
外部命令
expr
應用
參考:
- 好站 - 線上分析、解釋、檢查 Shell Script
- Bash 內建的 getopts 與外部的 getopt 的使用方式
- http://en.clihelper.com/ -- 線上選單設指令選項,目前 (2013/12/21) 只有 dd find fuser grep ping useradd wc
沒有留言:
張貼留言