当我输入一个eg。在我的.bashrc
文件中添加了一个新的别名,我不能立即在该终端窗口中使用它,直到最近我还以为必须重新启动终端才能重新加载.bashrc
文件。然后我发现某个地方,如果我写
. .bashrc
这将.bashrc
在当前窗口中重新加载文件,而我不必重新启动。这可行,但实际上是什么情况?为什么这会重新加载.bashrc
文件?
当我输入一个eg。在我的.bashrc
文件中添加了一个新的别名,我不能立即在该终端窗口中使用它,直到最近我还以为必须重新启动终端才能重新加载.bashrc
文件。然后我发现某个地方,如果我写
. .bashrc
这将.bashrc
在当前窗口中重新加载文件,而我不必重新启动。这可行,但实际上是什么情况?为什么这会重新加载.bashrc
文件?
Answers:
因为.
是命令。
这是一个shell内置命令,它读取命名文件并在当前shell进程中执行其中的命令。
Bourne Again shell也具有source
此命令的同义词。但这是一种Bashism(Bourne Again shell从C Shell中获取)。尽管Bourne Again shell与TENEX C Shell,Z Shell和其他(但不是Korn shell)共享是一种Bashism。单一UNIX规范仅进行标准化.
。
还要注意,.
/ 的行为source
取决于Bourne Again shell是否以其POSIX兼容模式运行。(同样,这与其他shell一样,尽管它们的非标准行为彼此不相同。例如,对于Z Shell,存在一种预编译的shell脚本机制,并且在搜索路径处理方面有source
细微差别.
。Korn .
再例如,shell 将运行shell函数。)
~/.bashrc
仅仅是文件的内容之一(其内容取决于外壳程序的调用方式)是在外壳程序启动时自动获取的。没有什么可以禁止手动获取的。尽管如果它的动作不是幂等的,则此后您可能需要做一些修复工作。
help .
会告诉你:
.: . filename [arguments]
Execute commands from a file in the current shell. Read and execute commands from FILENAME in the current shell. The entries in $PATH are used to find the directory containing FILENAME. If any ARGUMENTS are supplied, they become the positional parameters when FILENAME is executed. Exit Status: Returns the status of the last command executed in FILENAME; fails if FILENAME cannot be read.
说. .bashrc
执行(源)文件.bashrc
,使对该文件所做的更改在当前会话中可用。
默认情况下,~/.bashrc
将在登录时读取。
.
是的同义词source
。
.
,您可以“源”文件。这意味着它正在执行的基本