我正在尝试为每个 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
是最好的解决方案。