HeadlinesBriefing HeadlinesBriefing.com

Le tilde (~) ne s'expand pas dans la variable PATH

Hacker News •
×

Une faille courante dans la configuration du shell consiste à utiliser un tilde (~) dans des chaînes de caractères entre guillemets lors de la définition de la variable PATH. Lorsque les utilisateurs ajoutent des lignes comme `export PATH="$PATH:~/.local/bin/"` dans leur `.bashrc` ou `.zshrc`, le tilde ne s'expand pas vers le répertoire d'accueil, mais est traité comme un caractère littéral, ce qui entraîne l'ajout d'un chemin relatif `./~/.local/bin/` à la variable d'environnement. Cela se produit parce que l'expansion du tilde ne se produit que sur les mots non entre guillemets commençant par `~`.

Pour résoudre ce problème, les utilisateurs doivent utiliser explicitement la variable `$HOME`, par exemple `export PATH="$PATH:$HOME/.local/bin/"`. Bien que la version non entre guillemets `export PATH=$PATH:~/.local/bin` fonctionne dans Bash et Zsh, elle est fragile et peut casser si des espaces sont introduits. Le problème peut être rapidement diagnostiqué en exécutant `echo "$PATH" | grep '~'`. Si un résultat est retourné, les fichiers de configuration doivent être mis à jour pour remplacer `~` par `$HOME`.

Source: Hacker News · Résumé par HeadlinesBriefing