重新启动 bash 后无法存储 PATH



我在Windows 10上使用MINGW64。我想使用Heroku命令。

如果我做了heroku --version,它会显示bash: heroku: command not found。所以我执行PATH="$PATH:/c/Program Files/Heroku/bin",heroku命令开始工作。

现在,如果我关闭并重新启动bash,heroku --version仍然不起作用。

我如何设置路径";永远";?感谢

AFIK,Windows可以通过控制面板全局永久设置环境变量,但这意味着它们将应用于所有应用程序,而不仅仅是那些将用于bash的终端程序。

要只为bash进行设置,您需要了解bash启动时会发生什么(请参阅bash手册页中的"发票"一段(:

如果bash是作为交互式登录shell执行的,那么默认情况下它会处理主目录中的文件.bash_profile

如果它是交互式的,但不是登录shell,它会处理.bashrc.中的文件

如果您只将bash作为shell运行,并且最顶层的shell作为登录shell启动,那么您可以在.bash_profile中进行PATH设置,然后就完成了。由于PATH已导出,因此它对所有子进程都可见。

如果遇到这种情况,启动了一个非登录bash,并且父进程中没有bash登录shell,那么安全的方法是将这些定义放在主目录中的一个单独文件中,并从.bash_profile和.bashrc中获取这些定义。这样,可以确保每个bash都能看到这些定义。

当然,你不想让你的PATH被每个后续的子shell一次又一次地扩展,所以你需要保护你的PATH设置被多次应用,例如通过

if [[ ${path_extended:-no} == no ]]
then
export PATH=....
export path_extended=yes
fi

相关内容

  • 没有找到相关文章

最新更新