標籤:
內建命令(build-in commands)是shell build-in的命令,當內建命令使用的時候,shell將會直接執行,無需建立子進程。內建命令被用來建立一些功能性的或者便捷性的組建。
bash支援3中類型的內建命令
- Bourne Shell build-ins
:,.breakcdcontinueevalexecexitexportgetoptshashpwdreadonlyreturnsetshifttest[timestrapumaskunset
- Bash build-in commands
aliasbindbuiltincommanddeclareechoenablehelpletlocallogoutprintfreadshopttypetypesetulimitunalias.
- 特殊內建命令Special build-ins
當運行再POSIX模式下時,主要的不同有以下3方面
- 特殊內建命令優先被找到(不知道這句理解得對不對原文:Special build-ins are found before shell functions during commands lookup)
- 如果一個內建命令返回了錯誤碼,那麼如果shell又是非互動(non_interactive)的,那麼shell就會退出了。
- 命令執行完成之後,複製語句造成的副作用將會依舊存在。(穩妥起見原文奉上:Assignment statements preciding the command stay in effect in the shell environment after the commands complete)
從shell啟動程式的執行
當程式通過shell啟動,bash將會fork出一個subshell,subshell將會立即讀取父shell的命令,命令讀取後就會執行直到執行完畢或者被鍵盤送來的中斷所打斷。然後subshell將會執行所有命令而父shell則會等待其完成。當subshell執行完畢並終結,父shell將會被喚醒並重新列印語句在終端。
bourne again shell內建命令