127 votes

Git Bash ne voit pas mon PATH

Lorsque j'utilise Git Bash (sous Windows), je ne peux pas lancer un exécutable sans spécifier son chemin complet, bien qu'il soit situé dans un dossier qui se trouve dans ma variable PATH. Il semble que bash ne le reconnaisse pas. Pourquoi ? Puis-je le réparer ?

0voto

NewbieCrit Points 1

Je suis tombé sur une erreur stupide de ma part. J'avais un chemin large de systèmes et un chemin variable d'utilisateur défini pour mon espace de travail golang sur ma machine Windows 10. Lorsque j'ai supprimé le chemin de variable système redondant et que je me suis déconnecté et reconnecté, j'ai pu appeler des fichiers .exe dans bash et appeler go env avec succès.

Bien que la réponse à OP ait été donnée, c'est un autre problème qui pourrait empêcher bash de voir vos chemins. Je viens de tester à nouveau bash avec ce problème et il semble qu'il y ait une sorte de conflit qui empêche bash de suivre l'un ou l'autre des chemins.

0voto

kontashi35 Points 1

Dans mon cas, cela s'est produit lors de l'installation de heroku cli et git bash, Voici ce que j'ai fait pour travailler.

est arrivé à cet endroit

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

et supprimer le fichier dans le dossier heroku de mon cas. J'ai donc supprimé le dossier et lancé cmd. Cela fonctionne

0voto

Le terminal Git bash sur le système d'exploitation Windows a la capacité de lire le chemin du système / chemin de l'utilisateur et d'exécuter les applications mais il peut manquer dans les cas suivants

  1. L'application est ajoutée aux variables d'environnement sans fermer le terminal
  2. MSYS / MinGW convertit votre chemin.
  3. La commande d'application que vous essayez d'utiliser est un nom d'alias commun au lieu de la façon originale d'appeler.

Cas d'utilisation - 1 :

Redémarrer les terminaux devrait fonctionner et utiliser la commande suivante pour vérifier votre chemin d'accès

env|grep PATH

Cas d'utilisation - 2 :

Laissez-moi vous expliquer avec un exemple docker ne fonctionnera pas directement sur le terminal git bash, pour de telles applications, MSYS convertit le chemin d'origine. Pour de tels problèmes, vous devrez peut-être indiquer à votre terminal d'ignorer la conversion du chemin en utilisant la commande MSYS_NO_PATHCONV=1 et procédez à votre commande d'exécution réelle, disons par exemple docker --help devrait être comme ci-dessous

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 

Cas d'utilisation - 3 : Laissez-moi vous expliquer avec un exemple az cli, idéalement az cli installer dans Windows comme az.cmd qui est ajouté au chemin système/utilisateur. sur le système d'exploitation Windows, soit powershell ou l'invite de commande reconnaissent az.cmd como az mais git bash ne le comprendra pas - vous devez donc utiliser un alias pour éviter la confusion, comme par exemple alias az='az.cmd' et ensuite exécuter az --help fonctionnera pour vous

-2voto

ClickerTweeker Points 101

Pour ceux d'entre vous qui ont essayé toutes les méthodes mentionnées ci-dessus, y compris les variables d'environnement du système Windows, .bashrc, .bashprofile, etc. ET qui peuvent voir le chemin correct dans 'echo $PATH' ... J'ai peut-être une solution pour vous.

supprimer les erreurs en utilisant exec 2> /dev/null

Mon script s'exécute bien, mais il génère des erreurs 'command not found' ou 'No directory found', même si, pour autant que je sache, les chemins d'accès sont corrects. Donc, si vous supprimez ces erreurs (vous devrez peut-être aussi ajouter 'set +e'), alors il fonctionne correctement.

-3voto

broilogabriel Points 15

Créer une variable utilisateur nommée Path et ajouter comme valeur %Path%, d'après ce que j'ai remarqué Git Bash ne voit que les variables utilisateur et non les variables système. En faisant la procédure mentionnée, vous exposerez votre variable système dans les variables utilisateur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X