我在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