Я использую zsh и пытаюсь добавить новую запись ( /home/david/pear/bin
) в PATH
переменную, но не знаю как.
Больше всего меня смущает то, что PATH
в моем ~/.zshrc
файле нет ни одной ссылки на переменную , а выполняется echo $PATH
возврат:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Таким образом, PATH
переменная где-то устанавливается.
PATH="/home/david/pear/bin:/usr/bin:etc"
чтобыPATH=/home/david/pear/bin:/usr/bin:etc
он оставался в zshrc.PATH
от родительского процесса, который ее запустил, а затем, когда он запускается.zshrc
(.bashrc
или что-то еще), это то, что позволяет вам добавлять дополнительные вещи в этот путь.На самом деле, использование ZSH позволяет использовать специальное отображение переменных среды. Так что вы можете просто сделать:
Для меня это очень полезная функция, которая может быть распространена на другие переменные. Пример:
источник
~/.zshrc
после.profile
и переписывает все в.profile
. Я потянул за волосы, чтобы понять это.-x
и оставить в переменной только уникальные значения-U
, по умолчанию предполагается двоеточие, поэтому это может быть:typeset -TUx PATH path
path=(...)
(без ссылок$path
или$PATH
внутри) присваивает, добавляетpath=(... $path)
иpath+(...)
добавляет.Вы можете добавить к вашему сведению
PATH
в минимальной форме. Нет необходимости в скобках, если вы не добавляете более одного элемента. Это также обычно не нуждается в кавычках. Итак, простой, короткий способ добавить это:Общее использование
Тогда общий шаблон для тестирования нового скрипта / исполняемого файла становится:
Этот синтаксис нижнего регистра использует
path
в качестве массива , но также влияет на его эквивалент партнера в верхнем регистреPATH
(с которым он «связан» черезtypeset
).(Обратите внимание, что в качестве разделителя не
:
требуется / не требуется .)Связанные лакомые кусочки
Обработка
path
этого способа (как массива) также означает: не нужно делать a,rehash
чтобы получить новые исправленные команды, которые будут найдены.Также обратите внимание на
vared path
динамический способ редактированияpath
и других вещей.Вас может заинтересовать только
path
этот вопрос, но поскольку мы говорим об экспорте и массивах, обратите внимание, что массивы, как правило, не могут быть экспортированы.Вы даже можете запретить
PATH
дублирование записей (см. Это и это ):источник
path+='my/path' # for fun
. Это очевидно, если у вас есть пробелы, но не так много, если у вас есть комментарии.path
. Предыдущее:
требуется дляPATH
, как следует в .zshrcPATH+=:/Users/path/to/my/folder
один лайнер, без открытия
~/.zshrc
файлаили
Чтобы увидеть эффект, сделайте
source ~/.zshrc
в той же вкладке или откройте новую вкладкуисточник
Добавлен путь к ~ / .zshrc
sudo vi ~/.zshrc
добавить новый путь
Обновление ~ / .zshrc
Сохранить ~ / .zshrc
source ~/.zshrc
Проверьте ПУТЬ
echo $PATH
источник
Bash
путь.ВАРИАНТ 1: Добавьте эту строку в ~ / .zshrc:
После этого вам нужно запустить,
source ~/.zshrc
чтобы ваши изменения вступили в силу ИЛИ закрыть это окно и открыть новоеВАРИАНТ 2: выполнить его внутри консоли терминала, чтобы добавить этот путь только в текущий сеанс окна терминала. Когда вы закроете окно / сессию, оно будет потеряно.
источник