English 中文(简体)
吉特巴什看不到我的亲情
原标题:Git Bash doesn t see my PATH

当我使用 Git Bash (在 Windows 上) 时, 我无法运行任何可执行文件而不指明其完整路径, 尽管它位于一个文件夹中, 它位于我的 PATH 变量中。 看起来 Bash 无法识别它 。 为什么? 我能修正它吗?

最佳回答

作为 Windows 用户, 我通常不使用扩展名键入可执行的名称 。 在我的案例中, 我想执行一个名为 < code> cup.bat 的文件。 在 Windows shell 中, 打字 < code> cup 就足够了。 Bash 不这样做, 它想要全名 。 Typing < code> cup.bat 解决了问题 。 ( 虽然我无法运行这个文件, 因为显然 Bash 无法理解文件的内容 ) 。

还有一个理由 换成优雅的...

@Tom指出我的方向是正确的,

问题回答

shash 可能看不到您的 Windows 路径 。 在shash 中键入 < code> envgrep PATH 以确认路径 < 坚固 > < /strong > 所看到的路径 。

Following @Daniel s comment and thanks to @Tom s answer, I found out that Git bash was indeed using the PATH but not the latest paths I recently installed. To work around this problem, I added a file in my home (windows) directory named:

.bashrc

内容如下:

PATH=$PATH:/c/Go/bin

because I was installing Go and this path contained the executable go.exe Now Git bash was able to recognize the command:

go

或许就我而言,仅仅重新启动一个系统就足够了,但我感到高兴的是,无论如何,这一解决办法是有效的。

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

“https://i.stack.imgur.com/OLjVh.png' alt=“Git安装向导”/>

对我而言,

在 C: UsersUSERNAME 中创建文件,称为 config.bashrc, 包含:

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

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

mv config.bashrc .bashrc

计算机在给适宜卫生技术增加了新值后重新启动计算机 。

如果您的 git-bash s PATH 显示但不是最新和最强,您不想重新启动 ,而是重新生成您的 PATH ,您可以尝试如下:

  • 关闭所有 cmd.exe powershell.exe git-bash.exe ,并从启动菜单或桌面上重新打开一个cmd.exe窗口。

  • 如果您更改了全系统 PATH , 您可能需要打开一个有特权的 cmd 窗口 。

  • 从 Windows Explorer 上下文菜单打开 Git shart, 并查看 < code> PATH env 是否更新。 请注意 IntelliJIDE 中的“ 坚固” 终端可能是登录外壳或其他某种魔法, 所以在其中的 < code> PATH 可能不会改变, 直到您重新启动 IntelliJIDA

  • 如果这不起作用,您可能需要关闭所有 Windows Explorer 进程,并重试上述步骤。

    使用任务管理器关闭所有 Windows Explorer 进程 :

    1. Apps - Windows Explorer - right click - End task
    2. scroll down
    3. Windows processes - Windows Explorer - right click - Restart

< 强度 > 注: 这与所有 Windows 版本不起作用, 除了启动菜单或桌面上下文菜单之外, 在任何地方打开 < code> cmd. exe 可能无法工作 < / strong >, 使用我的四台计算机测试, 其中三台有效 。 我无法理解为何此操作, 但是由于在我登录和注销时, < code> PATH 环境变量是自动生成的, 我无法用变量组合来混淆该变量 。

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

之后我又重新登机和登机

就是这样! git bash 正确装入了新的 PATH 值 。

我可以确认,重新启动系统将确保窗口中环境变量中设置的PATH 被Git 接收,没有其他自动方式。

I know it is an old question but there s two type of environment variables. The one owned with User and the one system wide. Depending how do you open git bash (with user privilege or with administrator privilege) the environment variable PATH used can be from you User variables or from System variables. See below: enter image description here

as said in a previous answer, check with the command env|grep PATH to see which one you are using and update your variable accordingly. BTW, no need to reboot the system. Just close and reopen the git bash

It seems the root cause here is Git Bash not able to always parse the variable %USERPROFILE% correctly. Instead of making it relative to C:Users\ it gets the value C:WindowsSystem 32systemprofile After changing this to a fully qualified address, it Works, and even if I set it back afterwards, Git Bash still has the correct PATH for some reason.

当我试图用Mingw来编集在 Win10 中的 xgboost lib 时,我遇到了这个问题。 最后我找到了解决办法。

在主目录中创建名为.bashrc 的文件( 通常是 C: Usersuserusername ) 。 然后添加路径到它。 记住, 如果您的路径含有空白, 请使用引号, 并记住使用 / c/ 而不是 C: /

例如:

PATH=$PATH:"/c/方案文件/mingw-w64/x86_64-7.2.0-posix-seh-rt_v5-rev1/mingw64/bin"

On Windows 10, just uninstall git and install it again. It will set the environment variable automatically for you. I had removed the environment variable by mistake and I couldn t use git inside my IDE. Reinstalling git fixed this issue.

For me the most convenient was to: 1) Create directory "bin" in the root of C: drive 2) Add "C:/bin;" to PATH in "My Computer -> Properties -> Environemtal Variables"

Don t escape () special characters when editing/adding to your $PATH variable. For example, an application directory in program files would look like: PATH=$PATH:/c/Program Files (x86)/random/application

Don t do this:
PATH=$PATH:/c/Program Files \(x86\)/random/application/

希望这能帮上忙

我遇到了一个愚蠢的错误。我有一个系统宽度的系统,一个用户变量路径设置在我的窗口的 Golang 工作空间 10 机器上。当我移除多余的系统变量路径,并登出和重回时,我能够拨打.exe 文件在 Bash 中,并成功调用 Ev 。

虽然OP已经得到了解答,但这是另一个问题,它可能阻止人们看到您的路径。 我刚刚又用这个问题测试了Bash。 这似乎确实造成了某种冲突,这种冲突会阻拦人们走任何一个路径。

In my case It happened while installing heroku cli and git bash, Here is what i did to work.

获取到此位置

C: Users< username here> AppData 本地端

and delete the file in my case heroku folder. So I deleded folder and run cmd. It is working

窗口操作系统上的 Gitbash 终端终端可读取系统路径/用户路径/用户路径并运行应用程序,但在跟踪时可能会丢失

  1. App is added to environment variables without closing terminal
  2. MSYS / MinGW is converting your path
  3. App command your trying to use common alias name instead of original way of calling

<强 > 使用案例 - 1 :

重新启动终端站点应该工作并使用低于命令的终端点来校验您的路径

envgrep PATH

<强 > 使用案例 - 2 :

让我以 docker 为例解释 docker 将无法直接在 gitbash 终端上工作, 因为这样的应用程序 MSYSS 正在转换其源路路。 对于这些问题, 您可能需要用命令 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 

Use Case - 3 : let me explain with an example az cli, ideally az cli install in windows as az.cmd which is added to system/user path. on windows operating system either powershell or command prompt recognize az.cmd as az but git bash won t understand it - so you have use alias to avoid the confusion say alias az= az.cmd and then execute az --help will work for you

对于那些尝试过所有上述方法的人, 包括 Windows 系统设置变量,.bashrc,.bashprofile 等, 并且能够看到回声$PATH 正确路径...我也许可以给你们一个解决方案。

使用 < 坚固> exec 2 & gt; /dev/null 来抑制错误

我的脚本运行正常, 但是没有找到丢弃命令, 或者目录找不到错误, 尽管据我所知, 路径是冲洗的 。 所以, 如果您抑制这些错误( 可能还要添加设置+e ), 而不是它正常工作 。





相关问题
Why running a service as Local System is bad on windows?

I am trying to find out the difference between difference service account types. I tumbled upon this question. The answer was because it has powerful access to local resources, and Network Service ...

Programmatically detect Windows cluster configuration?

Does anyone know how to programatically detect that a Windows server is part of a cluster? Further, is it possible to detect that the server is the active or passive node? [Edit] And detect it from ...

get file icon for Outlook appointment (.msg)

I ve read Get File Icon used by Shell and the other similar posts - and already use SHFileInfo to get the associated icon for any given extension, and that works great. However, Outlook uses ".msg" ...

Identifying idle state on a windows machine

I know about the GetLastInputInfo method but that would only give me the duration since last user input - keyboard or mouse. If a user input was last received 10 minutes ago, that wouldn t mean the ...

Terminating a thread gracefully not using TerminateThread()

My application creates a thread and that runs in the background all the time. I can only terminate the thread manually, not from within the thread callback function. At the moment I am using ...

热门标签