Условно присвоить $pwd переменной $PATH.

Похоже, вы используете CentOS/Redhat 7. Ошибки возникают из-за включения репозитория Epel для CentOS/Redhat версии 6.

РЕДАКТИРОВАТЬ:

Согласно этой вики , загрузите и установите epel -выпуск -последний -7.noarch.rpm .

sudo rpm -ivh epel-release-latest-7.noarch.rpm

Вы можете проверить эти пакеты и их ключи на странице ключей проекта Fedora:https://fedoraproject.org/keys.

Обязательно удалите (или, как минимум, отключите )репозиторий epel el6.

0
06.06.2019, 21:17
3 ответа

Как отмечали другие, ваш код не обязательно работает так, как вы ожидаете, когда вы открываете новый терминал, так как текущий рабочий каталог может не быть тем, который содержит ваши проекты, и этот фрагмент кода только запускается при запуске новой оболочки.

Вместо этого вы, вероятно, знаете, где находятся ваши проекты, возможно, относительно вашего каталога $HOME. Если это так, вы можете использовать это вместо:

for binpath in vendor/bin node_modules/.bin; do
    if [ -d "$HOME/projects/$binpath" ]; then
        PATH=$HOME/projects/$binpath:$PATH
    fi
done

export PATH

Здесь я предполагаю, что $HOME/projects— это место, где находятся ваши проекты.

exportв конце, вероятно, не нужен, так как PATH, скорее всего, уже экспортирован.

0
28.01.2020, 03:36

В частности, с zshможно сделать:

path[1,0]=(~/projects/{vendor/,node_modules/.}bin(/N))

Где:

path[1,0]=(list)

вставляет listв начало массива($pathв zsh— это массив, привязанный к $PATHкак вzsh).

и (N/)— это квалификатор glob, где Nвключает nullglobдля glob, а /выбирает файлы типа каталога, поэтому эти два файла добавляются перед $PATH, если они существуют и относятся к типу каталог .

0
28.01.2020, 03:36

я не думаю, что это возможно сделать так, как вы хотите, не с.rc (.rc выполняется только один раз, он не будет выполняться позже, если вы специально не сделаете это ). А как насчет двух псевдонимов?

backupPATH=$PATH
function mkpath {
    [ -d "$(pwd)/vendor/bin" ] && export PATH="$(pwd)/vendor/bin":"$PATH"
    [ -d "$(pwd)/node_modules/.bin" ] && export PATH="$(pwd)/node_modules/.bin":"$PATH"
}
alias resetpath="PATH=$backupPATH"

При этом вы можете в любое время добавить текущий каталог в $PATH.

0
28.01.2020, 03:36

Теги

Похожие вопросы