HeadlinesBriefing HeadlinesBriefing.com

Тильда (~) в PATH не расширяется до каталога HOME

Hacker News •
×

Частая проблема в настройке оболочки заключается в использовании тильды (~) в кавычках при задании переменной PATH. Когда пользователи добавляют строки вроде `export PATH="$PATH:~/.local/bin/"` в свой `.bashrc` или `.zshrc`, тильда не расширяется до домашнего каталога, а воспринимается как символ, что приводит к добавлению относительного пути `./~/.local/bin/` в переменную среды. Это происходит потому, что расширение тильды происходит только для нецитированных слов, начинающих с `~`.

Чтобы решить эту проблему, пользователи должны явно использовать переменную `$HOME`, например `export PATH="$PATH:$HOME/.local/bin/"`. Хотя вариант без кавычек `export PATH=$PATH:~/.local/bin` работает в Bash и Zsh, он хрупкий и может сломаться при введении пробелов. Проблему можно быстро диагностировать, выполнив `echo "$PATH" | grep '~'`. Если вывод содержит `~`, файлы конфигурации следует обновить, заменив `~` на `$HOME`.

Источник: Hacker News · Сводку подготовил HeadlinesBriefing