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

t7e*_*t7e 3 command-line bash

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

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

为什么不自动重新加载?

也许,我错过了一些东西。

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

raj*_*raj 8

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

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

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