为新的 Bash 实例更新环境变量的最快和最干净的方法?

为新的 Bash 实例更新环境变量的最快和最干净的方法?

我正在尝试为每个 bash 实例创建/更新一个环境变量。

基本上,我希望结果export MSBuildSDKsPath=/opt/dotnet/sdk/$(dotnet --version)/Sdks 适用于每个 bash 实例。

我发现的唯一解决方案有点肮脏,就是将其放在主文件夹中文件的末尾,.bashrc但我不确定这是否是正确的做法。

我在其他地方看到过,有时应该将其放入.profile或,.bash_profile但如果这些文件在同一个用户会话中发生更改,然后我启动一个新的 bash 实例,$MSBuildSDKsPath则不会相应地更新。

答案1

~/.profile文件中默认存在下一条注释:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

这就是它对你不起作用的原因。

此外,.profile默认包含下一个代码

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

~/.bashrc如果存在,则此代码将调用您的代码。

为了您的目的,我认为在文件末尾添加变量导出.bashrc是最好的解决方案。

相关内容