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