В моих .bash-profile У меня есть следующие строки:Как изменить переменную пути в ZSH
PATHDIRS="
/usr/local/mysql/bin
/usr/local/share/python
/opt/local/bin
/opt/local/sbin
$HOME/bin"
for dir in $PATHDIRS
do
if [ -d $dir ]; then
export PATH=$PATH:$dir
fi
done
Однако я пытался скопировать это мой .zshrc и $PATH
не создаются.
Сначала я поставил операторы echo
внутри функции «if directory exists», и я обнаружил, что оператор if оценивал значение false, даже для явно существующих каталогов.
Затем я удалил каталоги существует проверку, и $PATH
был быть установлен неправильно, как это:
/usr/bin:/bin:/usr/sbin:/sbin:
/usr/local/bin
/opt/local/bin
/opt/local/sbin
/Volumes/Xshare/kburke/bin
/usr/local/Cellar/ruby/1.9.2-p290/bin
/Users/kevin/.gem/ruby/1.8/bin
/Users/kevin/bin
Ни одна из программ в нижних каталогах не было найден или казнен.
Что я делаю неправильно?
+1 - Два дополнительных подсказки, полезных для '$ PATH' манипуляции в' zsh' (для любого проходящего мимо): * (1) * для добавления вместо добавления: 'path [1,0] =/path/to/dir' и * (2) *, если вы используете globbing для поиска dirs, вам не нужно использовать цикл for, а вместо этого просто нужно «path + = ($ PWD/node_modules/**/bin ') (также работает с * (1) *). – unthought
Спасибо, я использовал ваше предложение, с path = ($^path (N- /)). Теперь есть способ гарантировать, что те же самые диски не дублируются в $ PATH каждый раз, когда я запускаю source ~/.zshrc? Спасибо – stansult
@stansult [Есть ли способ добавить каталог в мой PATH в zsh, только если он еще не присутствует?] (Http://unix.stackexchange.com/questions/62579/is-there-a-way- to-add-a-directory-to-my-path-in-zsh-only-if-its-not-already-pre) – Gilles