雖然我知道該source
命令在當前 shell 中執行程序,但我不太明白為什麼我們需要運行source .bashrc
來“重新加載”.bashrc 文件。
根據我的理解,我們不會透過向 .bashrc 添加別名來運行任何腳本 -source .bashrc
我們只是「重新載入」檔案。
為什麼不自動重新加載?
也許,我錯過了一些東西。
它在幕後是如何運作的?為什麼我們需要source
這個文件來讓新別名在不註銷的情況下工作?
答案1
.bashrc
bash 啟動時只讀一次。設計就是如此(並且一直如此)。如果您對 進行任何後續更改,則在重新讀取.bashrc
之前它們不會套用。.bashrc
透過運行source .bashrc
,您就可以做到這一點 - 您告訴 bash 重新讀取該檔案。
當然你也可以啟動一個新的bash副本(例如啟動一個新的終端會話),這將導致新的bash進程.bashrc
再次讀取該檔案(但舊會話中不會有任何變化)。
順便提一句。.bashrc
文件是一個腳本,透過取得它,您可以執行該文件中的命令。這些命令根據您的情況定義別名,但實際上可以在該檔案中放置任何命令。