如何重新加载.bashrc而不注销并返回?

如果我对.bashrc进行更改,如何重新加载而不注销并返回?


您只需输入命令:

source ~/.bashrc

或者您可以使用较短版本的命令:

. ~/.bashrc

或者你可以使用;

exec bash

做同样的事情。 (并且更容易记住,至少对我而言)

exec命令用给定的程序代替shell,在我们的例子中,它用bash替换我们的shell(使用更新后的配置文件)


为了补充和对比两个最受欢迎的答案, . ~/.bashrc . ~/.bashrcexec bash

这两种解决方案都有效地重新加载了~/.bashrc ,但有所不同:

  • source ~/.bashrc保留你当前的shell

  • 除了将~/.bashrc重新加载到当前shell(sourcing)所做的修改以外, 还保留了当前shell及其状态 ,其中包括环境变量,shell变量,shell选项,shell函数和命令历史记录。
  • exec bash或更强大的exec "$BASH" [1]将新实例替换当前的shell ,因此只保留当前shell的环境变量 (包括特定的shell )。

  • 换句话说:就shell变量,shell函数,shell选项,命令历史而言,对当前shell的任何临时更改都将丢失。
  • 根据您的需求,可能会首选其中一种或其他方法。


    [1] exec bash在理论上可以执行与启动当前shell的bash可执行文件不同的bash可执行文件,如果它恰好存在于之前列出的$PATH目录中的话。 由于特殊变量$BASH总是包含启动当前shell的可执行文件的完整路径,因此exec "$BASH"保证使用相同的可执行文件。
    注意在$BASH周围的"..." :双引号确保变量值按原样使用,而不用Bash解释; 如果该值没有嵌入空格或其他shell元字符(在本例中不太可能),那么您并不严格需要双引号,但使用它们是一种很好的习惯。

    链接地址: http://www.djcxy.com/p/25323.html

    上一篇: How do I reload .bashrc without logging out and back in?

    下一篇: What is bang dollar (!$) in Bash?