Quando uso o Git Bash (no Windows), não consigo executar nenhum executável sem especificar seu caminho completo, embora esteja localizado em uma pasta que está na minha variável PATH. Parece que o bash não o reconhece. Por quê? Posso consertar?
Quando uso o Git Bash (no Windows), não consigo executar nenhum executável sem especificar seu caminho completo, embora esteja localizado em uma pasta que está na minha variável PATH. Parece que o bash não o reconhece. Por quê? Posso consertar?
Respostas:
Entendi. Como usuário do Windows, estou acostumado a digitar nomes executáveis sem extensões. No meu caso, queria executar um arquivo chamado cup.bat
. Em um shell do Windows, digitar cup
seria o suficiente. O Bash não funciona assim, ele quer o nome completo. Digitandocup.bat
resolveu o problema. (Eu não consegui executar o arquivo, já que aparentemente o bash não conseguia entender seu conteúdo)
Mais um motivo para mudar para posh-git ..
Obrigado @Tom por me apontar a direção certa.
alias cup=cup.bat
.bat
; a extensão implica um script de lote do Windows - especialmente em uma máquina Windows.
Talvez o bash não veja o caminho do Windows. Digite env|grep PATH
bash para confirmar o caminho que ele vê.
Seguindo o comentário de @Daniel e graças à resposta de @Tom, descobri que o Git bash estava realmente usando o PATH, mas não os caminhos mais recentes que instalei recentemente. Para contornar esse problema, adicionei um arquivo no meu diretório inicial (windows) chamado:
.bashrc
e o conteúdo como segue:
PATH=$PATH:/c/Go/bin
porque eu estava instalando o Go e este caminho continha o executável go.exe
Now Git bash foi capaz de reconhecer o comando:
go
Talvez apenas uma reinicialização do sistema fosse suficiente no meu caso, mas estou feliz que esta solução funcione em qualquer caso.
PATH=$PATH:/c/Go/bin:/c/other/path
c:/Users/[myusername]/
esse é o meu diretório inicial
Enquanto você está instalando o Git, você pode selecionar a opção mostrada abaixo, ela o ajudará a definir o caminho automaticamente.
Funcionou para mim :)
Crie um arquivo em C: \ Users \ USERNAME chamado config.bashrc, contendo:
PATH=$PATH:/c/Program\ Files\ \(x86\)/Application\ with\ space
Agora mova o arquivo na linha de comando para o local correto:
mv config.bashrc .bashrc
Reinicie o computador depois de adicionar um novo valor a PATH.
Pergunta antiga, mas pode ajudar outra pessoa.
Eu mudei meu usuário PATH, depois disso, acabei de fazer logoff e login novamente.
É isso! git bash
carregou o novo valor PATH corretamente.
export PATH=$NEW_PATH:$PATH
. E fazer as coisas normalmente
Posso confirmar que reiniciar o sistema irá certificar-se de que o PATH definido na variável de ambiente no Windows é obtido pelo git e não há outra forma automática.
Parece que a causa raiz aqui é o Git Bash não ser capaz de sempre analisar a variável% USERPROFILE% corretamente. Em vez de torná-lo relativo a C: \ Usuários \\, ele obtém o valor C: \ Windows \ System 32 \ systemprofile \ Depois de alterar isso para um endereço totalmente qualificado, funciona e, mesmo se eu configurá-lo novamente depois, Git Bash ainda tem o PATH correto por algum motivo.
No caso do seu git-bash
's PATH
presentes, mas não mais recente e você não quer que um reboot, mas regenerar seus PATH
s, você pode tentar fechar tudo cmd.exe
, powershell.exe
e git-bash.exe
e reabrir uma janela cmd.exe a partir do Menu Iniciar ou Desktop e ver se o PATH
env é atualizado . Se você mudou em todo o sistemaPATH
também precisa abrir uma janela cmd privilegiada.
Nota: Isso não funciona com todas as versões do Windows e abrir em cmd.exe
qualquer lugar diferente do Menu Iniciar ou Desktop pode não funcionar , testado com meus 3 computadores e 2 deles funciona. Não descobri por que isso funciona, mas como a PATH
variável de ambiente é gerada automaticamente quando eu faço o login e logout, não devo bagunçar essa variável com a concatenação de variável.
Eu encontro esse problema quando tento usar o mingw para compilar o lib xgboost no Win10. Finalmente encontrei a solução.
Crie um arquivo chamado .bashrc em seu diretório inicial (geralmente C: \ Usuários \ nome de usuário). Em seguida, adicione o caminho a ele. Lembre-se de usar aspas se o seu caminho contiver espaço em branco e lembre-se de usar / c / em vez de C: /
Por exemplo:
PATH = $ PATH: "/ c / Arquivos de programas / mingw-w64 / x86_64-7.2.0-posix-seh-rt_v5-rev1 / mingw64 / bin"
Eu cometi um erro estúpido da minha parte. Eu tinha um sistema amplo e um caminho de variável de usuário definido para meu espaço de trabalho golang na minha máquina Windows 10. Quando removi o caminho da variável de sistemas redundantes e fiz logoff e logon novamente, consegui chamar os arquivos .exe no bash e chamar go env com sucesso.
Embora o OP tenha sido respondido, este é outro problema que pode impedir o bash de ver seus caminhos. Acabei de testar o bash novamente com esse problema e parece que há algum tipo de conflito que impede o bash de seguir qualquer um dos caminhos.
Eu sei que é uma questão antiga, mas existem dois tipos de variáveis de ambiente. Aquele pertencente ao usuário e o único sistema. Dependendo de como você abre o git bash (com privilégio de usuário ou com privilégio de administrador), a variável de ambiente PATH usada pode ser de suas variáveis de usuário ou de variáveis de sistema. Ver abaixo:
como dito na resposta anterior, verifique com o comando env|grep PATH
para ver qual você está usando e atualize sua variável de acordo. BTW, não há necessidade de reiniciar o sistema. Basta fechar e reabrir o git bash
No meu caso aconteceu durante a instalação do heroku cli e do git bash, aqui está o que eu fiz para funcionar.
chegou a este local
C:\Users\<username here>\AppData\Local
e exclua o arquivo na pasta heroku do meu caso. Então eu deleded pasta e executei cmd. Está funcionando
Não escape (\) caracteres especiais ao editar / adicionar à sua variável $ PATH. Por exemplo, um diretório de aplicativo em arquivos de programa seria assim:
PATH=$PATH:/c/Program Files (x86)/random/application
Não faça isso:
PATH=$PATH:/c/Program\ Files\ \\(x86\\)/random/application/
Espero que isto ajude.
PATH=$PATH:/c/Program Files (x86)/random/application
... esta não é a sintaxe bash correta para definir o PATH. Isso adicionará temporariamente o diretório /c/Program
ao caminho e, em seguida, tentará executar o programa Files
com argumentos (x86)/random/application
. A única coisa errada com o seu exemplo "não faça isso" é que ele tem barras invertidas duplas para os colchetes, quando barras invertidas simples estão corretas.
Para aqueles que já experimentaram todos os métodos mencionados acima, incluindo env do sistema Windows. variáveis, .bashrc, .bashprofile, etc. E posso ver o caminho correto em 'echo $ PATH' ... Posso ter uma solução para você.
suprimir os erros usando exec 2> / dev / null
Meu script funciona bem, mas exibia os erros 'command not found' ou 'No directory found', embora, pelo que eu saiba, os caminhos estejam liberados. Portanto, se você suprimir esses erros (talvez seja necessário adicionar 'set + e'), funcionará corretamente.
Crie uma variável de usuário chamada Path e adicione como valor% Path%, pelo que percebi que o Git Bash só vê variáveis de usuário e não variáveis de sistema. Ao fazer o procedimento mencionado, você exporá sua variável de sistema nas variáveis de usuário.
Nas variáveis de ambiente do caminho do Windows 7, acabei de adicionar no final do caminho da variável do sistema
\; C: \ Arquivos de programas \ Git \ bin
e funciona agora!