追本溯源,探究技術的歷史背景和發展脈絡,能夠幫助我們更深刻地理解其設計哲學和存在的意義。source
命令(或者說它的前身和等效形式)的歷史,與 Unix Shell 本身的發展緊密相連。
讓我們一起踏上這段追溯之旅,探索 source
命令的由來和發展歷程。
早期 Unix Shell 與命令執行 (20世紀70年代初 - 中期)
在 Unix 的黎明時期,第一個重要的 Shell 是 Thompson Shell (sh),由 Ken Thompson 在貝爾實驗室開發,大約在 1971 年左右。
- 基本的命令執行: Thompson Shell 已經具備了執行外部命令(通過
fork
和exec
系統調用創建新進程)和內置命令的能力。 - 腳本執行: 它可以執行包含一系列命令的腳本文件。然而,此時的腳本執行方式,主要是通過創建一個新的 Shell 進程來解釋和運行腳本中的命令。這意味著腳本對環境的修改(如變量設置)在腳本結束后就會丟失,無法影響父 Shell。
- “.” 命令的雛形: 此時,Thompson Shell 還沒有明確的
source
命令。但是,引入命令來執行腳本內命令并在當前上下文中生效的概念,其需求已經開始顯現。例如,登錄時需要執行一些初始化命令來設置環境。
Bourne Shell (sh) 的誕生與 “.” 命令 (1977 - 1979年)
真正的轉折點來自于 Bourne Shell (sh),由 Stephen Bourne 在貝爾實驗室開發,并在 Unix Version 7 (大約 1979 年) 中作為默認 Shell 發布。Bourne Shell 帶來了許多至今仍在使用的重要特性,其中就包括了我們今天討論的主角—— .
(點) 命令。
source
的前身/等效形式:.
(點命令)- 時間點: 大約在 1977-1979年 間,隨著 Bourne Shell 的開發和完善,
.
命令被引入。 - 由來與歷史背景:
- 時間點: 大約在 1977-1979年 間,隨著 Bourne Shell 的開發和完善,