我有下载二进制文件并更新路径变量的脚本,但一旦脚本退出并且我尝试运行二进制文件,它就找不到下载的二进制文件。在每个系统上,我都必须明确地获取 .bash_profile,即使我在 bash 脚本中运行该命令。
if [[ $update_path == 0 ]]; then
echo $"export PATH=$PATH:$target" >> ~/.bash_profile # ~/.profile
source ~/.bash_profile
fi
我不想要求用户重新登录。
答案1
该脚本在source
其上下文中执行。
一旦脚本结束,其上下文也随之结束。
- 因此当前上下文不保存更新的内容
~/.bash_profile
。
您需要重新登录或source
再次~/.bash_profile
才能获取更新的变量。