Ahm*_*sih 34 windows shell git-bash
我最近通过进入控制面板 -> 系统 -> 高级系统设置 -> 环境变量 -> 用户变量 -> PATH 手动向 Windows PATH 添加了一个目录。(Windows 7,64 位。)
重新启动并启动 cmd.exe 后,echo %PATH%表明这有效:我在输出中看到了我最近添加的目录。
但是,启动 Git Bash 后,输出echo $PATH不包含此目录。
我可以添加export PATH=$PATH:/c/my/path我的 bashrc,但我宁愿 Git Bash 只从 Windows 获取 PATH,这样我就不必记住将路径添加到两个地方。如何做到这一点?
(一个更普遍的相关问题是,是什么设置了 Git Bash 的 $PATH?我看到在不同的地方重复了几个条目,Windows %PATH% 中的一些东西在 Git Bash 的 $PATH 中,而不是其他东西。之前发生了什么我得到了触及 $PATH 的 Git Bash 提示?)
小智 7
这是我针对类似问题的小解决方法(Windows 10 上的 MSYS2 bash)。
这个想法是将所需的路径转换为 Unix 样式的路径,并将它们附加到 bash $PATH,所有这些都在 .bashrc 中完成。
不要将所需的路径附加到 Win PATH。而是在 Windows 中创建一个新的 env var,如 MSYS2_WINPATH,并将所有以分号分隔的 Windows 路径目录附加到此变量。将 %MSYS2_WINPATH% 附加到 %PATH%。
现在将其插入您的 .bashrc -
################################## Construct PATH variable ##################################
winpath=$(echo $MSYS2_WINPATH | tr ";" "\n" | sed -e 's/\\/\\\\/g' | xargs -I {} cygpath -u {})
unixpath=''
# Set delimiter to new line
IFS=$'\n'
for pth in $winpath; do unixpath+=$(echo $pth)":"; done
export PATH=$(echo $PATH:$unixpath | sed -e 's/:$//g')
unset IFS
unset unixpath
unset winpath
################################# Constructed PATH variable #################################
Run Code Online (Sandbox Code Playgroud)
一个 mingw64 git bash 会话使用可执行文件/usr/bin/bash.exe,它不会访问或修改环境变量PATH(就像在这个不相关的 vbs 脚本中一样)
git bash 会话将简单地添加到您当前的前面PATH:
/mingw64/bin:/usr/bin:
Run Code Online (Sandbox Code Playgroud)
与 msysgit 一起打包的 mingW64 会话可能不会考虑bin来自另一个 mingw 安装:您可以通过将另一个(更简单的)目录设置为您的目录来检查它PATH,看看它是否仍然在您的 git bash 会话中可见。如果不是,那么它是一个更普遍的问题,它涉及您将添加到 PATH 的所有目录。
| 归档时间: |
|
| 查看次数: |
102220 次 |
| 最近记录: |