为什么我需要运行 source 命令才能应用 .bashrc 别名?

为什么我需要运行 source 命令才能应用 .bashrc 别名?

虽然我理解source命令在当前 shell 中执行一个程序,但我不太明白为什么我们需要运行source .bashrc来“重新加载”.bashrc 文件。

据我所知,我们不会通过向 .bashrc 添加别名来运行任何脚本 -source .bashrc我们只是“重新加载”文件。

为什么它不能自动重新加载?

或许,我遗漏了一些东西。

它的内部是如何工作的?为什么我们需要source这个文件来让新别名在无需注销的情况下工作?

答案1

.bashrc当 bash 启动时, 只读取一次。这是设计使然(并且一直如此)。如果您对 进行任何后续更改.bashrc,则这些更改将不会应用,直到.bashrc重新读取。通过运行source .bashrc,您可以做到这一点 - 您告诉 bash 重新读取该文件。

当然您也可以启动一个新的 bash 副本(例如,启动一个新的终端会话),这将导致新的 bash 进程.bashrc再次读取该文件(但旧会话中不会有任何变化)。

顺便说一下。.bashrc文件脚本,通过获取它,您可以执行放置在该文件中的命令。这些命令在您的情况下定义了别名,但实际上可以放置在该文件中的任何命令。

相关内容