為什麼我需要執行 source 指令才能套用 .bashrc 別名?

為什麼我需要執行 source 指令才能套用 .bashrc 別名?

雖然我知道該source命令在當前 shell 中執行程序,但我不太明白為什麼我們需要運行source .bashrc來“重新加載”.bashrc 文件。

根據我的理解,我們不會透過向 .bashrc 添加別名來運行任何腳本 -source .bashrc我們只是「重新載入」檔案。

為什麼不自動重新加載?

也許,我錯過了一些東西。

它在幕後是如何運作的?為什麼我們需要source這個文件來讓新別名在不註銷的情況下工作?

答案1

.bashrcbash 啟動時只讀一次。設計就是如此(並且一直如此)。如果您對 進行任何後續更改,則在重新讀取.bashrc之前它們不會套用。.bashrc透過運行source .bashrc,您就可以做到這一點 - 您告訴 bash 重新讀取該檔案。

當然你也可以啟動一個新的bash副本(例如啟動一個新的終端會話),這將導致新的bash進程.bashrc再次讀取該檔案(但舊會話中不會有任何變化)。

順便提一句。.bashrc文件一個腳本,透過取得它,您可以執行該文件中的命令。這些命令根據您的情況定義別名,但實際上可以在該檔案中放置任何命令。

相關內容