Git Bash没有看到我的PATH

时间:2012-05-21 07:33:25

标签: windows bash git-bash

当我使用Git Bash(在Windows上)时,我不能在没有指定其完整路径的情况下运行任何可执行文件,尽管它位于我的PATH变量中的文件夹中。看起来bash无法识别它。为什么?我能解决吗?

21 个答案:

答案 0 :(得分:53)

知道了。作为Windows用户,我习惯于在没有扩展名的情况下键入可执行文件名。就我而言,我想执行一个名为cup.bat的文件。在Windows shell中,键入cup就足够了。 Bash不会这样工作,它需要全名。键入cup.bat解决了问题。 (虽然我无法运行该文件,因为显然bash无法理解其内容)

切换到posh-git的另一个原因..

感谢@Tom指出我正确的方向。

答案 1 :(得分:44)

也许bash没有看到你的Windows路径。在bash中输入env|grep PATH以确认看到的路径。

答案 2 :(得分:30)

关注@ Daniel的评论并感谢@ Tom的回答,我发现Git bash确实使用了PATH,但没有使用我最近安装的最新路径。 为了解决这个问题,我在家(windows)目录中添加了一个名为:

的文件

.bashrc

和内容如下:

PATH=$PATH:/c/Go/bin

因为我正在安装Go并且此路径包含可执行文件go.exe 现在Git bash能够识别命令:

go

在我的情况下,也许只是系统重启就足够了,但我很高兴这个解决方案在任何情况下都能正常工作。

答案 3 :(得分:7)

在安装Git时,您可以选择下面显示的选项,它可以帮助您自动设置路径。

Git installation wizard

它为我解决了:)

答案 4 :(得分:7)

在C:\ Users \ USERNAME中创建一个名为config.bashrc的文件,其中包含:

PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space

现在将命令行上的文件移动到正确的位置:

mv config.bashrc .bashrc

答案 5 :(得分:3)

在向PATH添加新值后重新启动计算机。

答案 6 :(得分:3)

老问题,但它可以帮助别人。

我已经更改了用户范围的PATH,之后我只是注销并再次登录。

就是这样! git bash正确加载了新的PATH值。

答案 7 :(得分:1)

如果您的git-bash的{​​{1}}出现了但不是最新的,并且您不想重新启动但重新生成了PATH,则可以尝试关闭所有PATHcmd.exepowershell.exe,然后从“开始”菜单或桌面重新打开一个cmd.exe窗口,查看git-bash.exe环境是否已更新。如果您更改了系统范围的PATH,则还需要打开一个特权cmd窗口。

注意:这不适用于所有Windows版本,并且在“开始菜单”或“桌面”以外的其他任何地方打开PATH ,并在我的3台计算机和其中2台计算机上进行了测试作品。我不知道为什么会这样,但是由于cmd.exe环境变量是在我登录和注销时自动生成的,因此我不会使用变量串联来弄乱该变量。

答案 8 :(得分:1)

这似乎是Git Bash无法始终正确解析变量%USERPROFILE%的根本原因。而不是相对于C:\ Users \\它获取值C:\ Windows \ System 32 \ systemprofile \ 将此更改为完全限定的地址后,它就可以工作,即使我之后将其设置回来,Git Bash仍然会出于某种原因使用正确的PATH。

答案 9 :(得分:1)

我可以确认重启系统会确保在windows中的环境变量中设置的PATH被git选中,并且没有其他自动方式。

答案 10 :(得分:0)

Windows 操作系统上的 Git bash 终端可以读取系统路径/用户路径并运行应用程序,但在以下情况下可能会丢失

  1. 应用添加到环境变量中,无需关闭终端
  2. MSYS / MinGW 正在转换您的路径
  3. 应用命令您尝试使用通用别名而不是原始调用方式

用例 - 1:

重新启动终端应该可以工作并使用以下命令来验证您的路径

env|grep PATH

用例 - 2:

让我用一个例子解释一下 docker 不能直接在 git bash 终端上工作,对于这样的应用程序,MSYS 正在转换它的原始路径。对于此类问题,您可能需要使用命令 MSYS_NO_PATHCONV=1 告诉终端忽略路径转换并继续执行实际执行命令,例如 docker --help 应如下所示

MSYS_NO_PATHCONV=1  MSYS_NO_PATHCONV=1 docker run -dp 3000:3000 -w /app -v "$(pwd):/app" node:12-alpine sh -c "yarn install && yarn run dev"
717d12b9fe5211f0189ccbed0ba056ca242647812627682d0149ede29af472a4 

用例 - 3 : 让我用一个示例 az cli 来解释,理想情况下 az cli install 在 windows 中作为 az.cmd 添加到系统/用户路径。在 Windows 操作系统上,powershell 或命令提示符将 az.cmd 识别为 az 但 git bash 不会理解它 - 所以你必须使用别名来避免混淆,说 alias az='az.cmd' 然后执行 {{ 1}} 会为你工作

答案 11 :(得分:0)

就我而言,这是在安装heroku cli和git bash时发生的, 这是我所做的工作。

转到此位置

C:\Users\<username here>\AppData\Local

并删除我的heroku文件夹中的文件。 所以我删除了文件夹并运行cmd。它正在工作

答案 12 :(得分:0)

我知道这是一个老问题,但是有两种类型的环境变量。一台归User所有,一台遍及整个系统。 根据您如何打开git bash(具有用户权限或具有管理员权限),所使用的环境变量PATH可以来自您的用户变量,也可以来自系统变量。 见下文: enter image description here

如上一个答案中所述,请使用命令env|grep PATH来检查您正在使用哪个,并相应地更新变量。 顺便说一句,无需重新启动系统。只需关闭并重新打开git bash

答案 13 :(得分:0)

在Windows 10上,只需卸载git并重新安装即可。它将自动为您设置环境变量。 我错误地删除了环境变量,并且无法在IDE中使用git。重新安装git可以解决此问题。

答案 14 :(得分:0)

我遇到了一个愚蠢的错误。我在Windows 10机器上为golang工作区设置了系统范围的用户变量路径。当我删除冗余系统变量路径并注销然后重新登录时,我能够在bash中调用.exe文件并成功调用go env。

尽管OP得到了回答,但这是另一个问题,可能使bash无法看到您的路径。我刚刚再次测试了bash的问题,它似乎确实产生了某种冲突,从而阻止bash遵循其中任何一条路径。

答案 15 :(得分:0)

I meet this problem when I try to use mingw to compile the xgboost lib in Win10. Finally I found the solution.

Create a file named as .bashrc in your home directory (usually the C:\Users\username). Then add the path to it. Remember to use quotes if your path contains blank, and remember to use /c/ instead of C:/

For example:

PATH=$PATH:"/c/Program Files/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin"

答案 16 :(得分:0)

对我来说最方便的是: 1)创建目录&#34; bin&#34;在C:驱动器的根目录中 2)添加&#34; C:/ bin;&#34; to&#34;我的电脑中的路径 - &gt;属性 - &gt; Environemtal变量&#34;

答案 17 :(得分:-1)

编辑/添加到$ PATH变量时,不要转义(\)特殊字符。 例如,程序文件中的应用程序目录如下所示: PATH=$PATH:/c/Program Files (x86)/random/application

不要这样做:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/

希望这有帮助。

答案 18 :(得分:-2)

对于那些尝试过所有上述方法的人,包括Windows系统环境。变量,.bashrc,.bashprofile等。并且可以在回声$ PATH&#39;中看到正确的路径。 ......我可能会为您提供解决方案。

使用 exec 2&gt;来抑制错误/ dev / null

我的脚本运行正常,但没有找到&#39;命令&#39;或者&#39;找不到目录&#39;尽管如此,据我所知,路径是齐平的。因此,如果您取消这些错误(可能还需要添加&#39;设置+ e&#39;),那么它可以正常工作。

答案 19 :(得分:-3)

在Windows 7路径环境变量中 我只是在系统变量路径的末尾添加

\; C:\ Program Files \ Git \ bin

现在可以使用了!

答案 20 :(得分:-3)

创建一个名为Path的User变量并添加为值%Path%,从我注意到Git Bash只看到用户变量而不是系统变量。通过执行上述过程,您将在用户变量中公开您的系统变量。