Есть ли способ установить «другую» переменную PATH?

Я знаю, что если у меня есть собственный путь CUSTOM_PATH=/some/custom/path/ , то я просто export PATH=$PATH:$CUSTOM_PATH , чтобы иметь общесистемный доступ к исполняемым файлам в /some/custom/path .

Но по некоторым сложным причинам было бы здорово, если бы я мог определить $CUSTOM_PATH , не добавлять его в $PATH но по-прежнему искать его содержимое, как если бы оно было добавлено в $PATH .

Это то, что я имею в виду под «другой» переменной PATH: путь, который ищется как $ PATH, но определяется отдельно. Есть ли способ сделать это?

Всего 1 ответ


Быстрый ответ: Нет.

Если бы это было возможно, то это могло бы быть что-то вроде:

export CUSTOM_PATH=/usr/local/bin
export PATH='/usr/bin:/bin:$CUSTOM_PATH'

Это поместит буквенную строку "$CUSTOM_PATH" в ваш $PATH . Затем вы можете изменить значение $CUSTOM_PATH , не касаясь $PATH , и неявно обновить путь поиска вашей системы.

Но это не работает таким образом. Соответствующие библиотечные функции ( execlp и др.) Обрабатывают значение $PATH среды $PATH как разделенную двоеточиями последовательность буквенных имен каталогов. Это не делает никакого расширения этих имен.

Вам просто нужно будет обновить $PATH любое время, когда вы захотите изменить путь поиска в системе. (Вы можете поддерживать значение $PATH любым удобным для вас способом, включая включение значений других переменных среды.)


Есть идеи?

10000