如何创建修改.bashrc并使更改在当前会话中生效的bash脚本?

时间:2017-06-20 07:57:04

标签: bash

我有一个'安装'为.bashrc添加别名的脚本(例如)。 我希望更改在运行脚本后立即生效(就像我在运行脚本后手动执行:source .bashrc)。

示例脚本install.sh

#!/bin/bash
# Do other stuff ...
echo "alias myalias='echo hello'" >> /root/.bashrc

1 个答案:

答案 0 :(得分:2)

来自man bash,SHELL BUILTIN命令部分:

  

source filename [arguments]

     

在当前shell环境中从filename读取并执行命令,并返回从filename执行的最后一个命令的退出状态。如果filename不包含斜杠,则使用PATH中的文件名来查找包含filename的目录。在PATH中搜索的文件不需要是可执行的。 [...]

你要么......

    来自调用source ~/.bashrc

    的流程中的
  • install.sh

  • source ~/.bashrc中有一个install.sh使用source install.sh调用它。

只要你有"只是"称为install.sh,它产生了一个新的shell进程,而install.sh 所做的一切只会影响 进程,而不会影响当前的shell进程。这是shell的安全功能。如果您希望脚本影响当前进程,则必须明确授予其权限(通过source)。