Повторяются ли повторяющиеся записи в переменной PATH с приоритетом, заданным первой записью?

Если у меня есть переменная PATH, которая (когда взорвана на несколько строк) содержит что-то вроде этого (с несколькими заметками, добавленными мной):

/Users/brandon/.rvm/gems/ruby-2.0.0-p353/bin /Users/brandon/.rvm/gems/ruby-2.0.0-p353@global/bin /Users/brandon/.rvm/rubies/ruby-2.0.0-p353/bin /opt/local/bin /opt/local/sbin /usr/local/sbin /usr/local/bin # <<--- notice this path appears again later /usr/bin # <<--- notice this comes AFTER /usr/local/bin /bin /usr/sbin /sbin /usr/local/bin # <<--- here it is again! /usr/local/git/bin /Users/brandon/bin /Users/brandon/.homebrew/bin /usr/local/mysql/bin /usr/local/share/npm/bin /Applications/Postgres93.app/Contents/MacOS/bin /Users/brandon/.rvm/bin 

возможно ли наличие второго /usr/local/bin/ чтобы заставить /usr/bin иметь приоритет над /usr/local/bin ? Это кажется сумасшедшим (для меня: я никогда не слышал об этом), но это именно то поведение, которое я вижу. Я только что установил PHP с Homebrew, и все же система PHP (из /usr/bin ) имеет приоритет:

 $ which php /usr/bin/php 

НО , после ручного изменения PATH (вместо того, чтобы копать все файлы, полученные моим .zshrc чтобы попытаться выяснить, почему и откуда происходит дублирование), чтобы удалить второй экземпляр /usr/local/bin , я нахожу, что /usr/local/bin имеет приоритет над /usr/bin как я и ожидал, в первую очередь:

 $ which php /usr/local/bin/php 

Что может вызвать это? Это нормально?

One Solution collect form web for “Повторяются ли повторяющиеся записи в переменной PATH с приоритетом, заданным первой записью?”

hash -r (для bash ) Если вы только что установили двоичный файл, оболочка может не знать об этом немедленно, так как он поддерживает кеш (по сравнению с PATH для каждой команды).

Путь сканируется по порядку, дубликаты не имеют абсолютно никакой разницы. Тем не менее, тупиковая оболочка может сканировать дублируемую запись более одного раза – если foo присутствует дважды, а bar не находится в foo, foo может отсканироваться дважды.

  • В чем разница между PATH и LD_LIBRARY_PATH?
  • Безопасно ли добавлять. к моей ПУТЬ? Как так?
  • Добавить путь, если в subdir
  • Можно ли добавить один исполняемый файл, а не весь каталог, в мой $ PATH?
  • `which`, но все
  • разница между / var / www и / usr / local
  • SSH-вызов не видит правильный $ path, который существует на сервере
  • Как работать с командой dfspace?
  • Обновление PATH не остается после перезагрузки
  • Проблема с файловым пути
  • Путь есть, но не может вызвать одну программу без указания пути
  • Linux и Unix - лучшая ОС в мире.