Le fait que l'exportation de PATH avec les valeurs par défaut standardisées corrige temporairement le problème indique un mauvais système. export PATH="..."
dans l'un des fichiers d'initialisation chargés par le Shell au démarrage.
Ils devraient être comme : export PATH="$PATH:/some/path"
. Avec le $PATH
partie manquante dans l'affectation, cela détruirait la valeur actuelle de la variable d'environnement PATH
plutôt que d'en rajouter, et vous laisser dans une situation comme celle-ci.
/bin/echo $PATH
devrait vous montrer la valeur de PATH. Si vous faites cela dans un nouveau Shell sans le correctif d'exportation manuel que vous utilisez, cela vous donnera un indice pour vous aider à trouver où le PATH est écrasé.
Des questions et réponses assez pertinentes sur Stack Overflow. et plus particulièrement cette réponse mène à :
Vérifiez ~/.bash_profile
et s'il y a une ligne avec export PATH="..."
qui n'inclut pas $PATH
dans l'affectation, ajoutez-le. Assurez-vous juste de mettre un :
entre les chemins, car c'est le séparateur. par exemple export PATH="$PATH:/some/path:another/path"
ajouterait en toute sécurité les deux /some/path
y another/path
.
Si ~/.bash_profile
contient l'un ou l'autre des éléments suivants source $HOME/.profile
o source $HOME/.bashrc
ou elle n'a pas été trouvée et corrigée en .bash_profile
alors vérifiez également ces fichiers. Notez également que .
est un alias pour source
et on peut donc dire . $HOME/.profile
etc.
La réponse ci-dessus indique également que dans Terminal et iTerm (avec les paramètres par défaut), les nouveaux shells sont des "shells de connexion" par défaut et ne lisent pas ~/.bashrc
. Donc, si vous suivez les instructions pour un système d'exploitation autre que Mac (Linux, etc.), essayez d'ajouter ce qu'ils disent à ~/.bash_profile
à la place.
Vous pourriez source $HOME/.bashrc
dans votre ~/.bash_profile
si vous souhaitez le faire, mais comme il n'est pas censé être chargé dans un Shell de connexion, cela peut conduire à des problèmes à un moment donné.
Aussi, juste au cas où, notez que ~
est seulement étendu à /home/{user}
sur la ligne de commande. $HOME
doit être utilisé pour le même effet dans scripts, mais peut aussi être utilisé depuis la ligne de commande.