Demure вже відповів на ваше конкретне запитання. Однак це zsh
питання і про те PATH
. Отже, тут є ще один момент: Окрім стандартної змінної $PATH
, є також $path
, що є масивом. Тут ви бачите різницю (колони чи ні ...):
$ print $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
$print $path
/bin /usr/bin /usr/local/bin /usr/X11R6/bin
Обидва варіанти автоматично зберігаються синхронізовано. Отже, яка користь від використання масиву?
- Останнє ви можете оголосити через
typeset -U path
"зберігати лише перше виникнення кожного дубльованого значення" (від man zshbuiltins
). Це означає, що це забезпечує ваш шлях чистим, навіть якщо ви послідовно подаєте джерело ~/.zshrc
(тому що ви змінили його чи будь-що інше) і не захаращувати його з однаковими значеннями знову і знову.
- Ви можете використовувати
path+=(/new/path)
для додавання нового каталогу у свій PATH. Щоб видалити елемент, потрібно скористатися деякими хитрощами, див., Наприклад, /programming//q/3435355/2037712 або http://www.zsh.org/mla/users//2005/msg01132.html
- Ви можете легко перебирати елементи в PATH через
for i ($path) { print $i # or do something else }
Нарешті, ось уривок з моєї конфігурації:
typeset -U path
path=(/new/path1
/new/path2
$path)
export PATH
.zshenv
.