虽然我知道该source
命令在当前 shell 中执行程序,但我不太明白为什么我们需要运行source .bashrc
来“重新加载”.bashrc 文件。
根据我的理解,我们不会通过向 .bashrc 添加别名来运行任何脚本 - 我们source .bashrc
只是“重新加载”文件。
为什么不自动重新加载?
也许,我错过了一些东西。
它在幕后是如何工作的?为什么我们需要source
这个文件来让新别名在不注销的情况下工作?
.bashrc
bash 启动时只读一次。设计就是如此(并且一直如此)。如果您对 进行任何后续更改,则在重新读取.bashrc
之前它们不会应用。.bashrc
通过运行source .bashrc
,您就可以做到这一点 - 您告诉 bash 重新读取该文件。
当然你也可以启动一个新的bash副本(例如启动一个新的终端会话),这将导致新的bash进程.bashrc
再次读取该文件(但旧会话中不会有任何变化)。
顺便提一句。.bashrc
file是一个脚本,通过获取它,您可以执行放置在该文件中的命令。这些命令根据您的情况定义别名,但实际上可以在该文件中放置任何命令。