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 ?
Réponses
Trop de publicités?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.
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
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
- L'application est ajoutée aux variables d'environnement sans fermer le terminal
- MSYS / MinGW convertit votre chemin.
- 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
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.