2014-02-20 7 views
1

У меня есть настраиваемая команда git-feature, которая находится в исполняемом файле Unix с тем же именем. Я пытаюсь настроить переменную $ PATH в ~/.bash_profile, чтобы она распознала файл Unix. Я обновил переменную PATH, чтобы включить путь к файлу:

export PATH=$PATH:~/Applications/MAMP/htdocs/code/git-shortcuts/ 

echo $PATH команда в моем Баш терминал выдает следующий результат:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/myname/Applications/MAMP/htdocs/code/git-shortcuts/ 

Но попытка вызвать git-feature приводит к следующей ошибке:

-bash: git-feature: command not found 

Есть несколько аналогичных вопросов по SO, но ни один из найденных мной не решил этот конкретный тип проблемы. Мне нужно изменить переменную PATH по-разному, чтобы моя пользовательская команда была распознана bash?

+1

Добавили ли вы выполнить разрешения с 'chmod + x git-feature'? – chepner

+1

Что произойдет, если вы запустите: '/ Users/myname/Applications/MAMP/htdocs/code/git-shortcuts/git-feature'? Он найден и выполним? Если нет, то у вас есть неправильный каталог на вашем пути. Если это так, нет очевидной причины, по которой она потерпит неудачу. –

+1

Вам нужно перечитать свой профиль после изменения его содержимого, выполнив вход в систему или выполнив «. ~/.bash_profile» –

ответ

1

Вы изменяете переменную PATH правильно.

Убедитесь, что git-feature действительно находится в этом каталоге, что он имеет исполняемый бит (+ х) множество, и что каталоги, ведущие к нему дают вам права на выполнение его:

MYFILE=/Users/myname/Applications/MAMP/htdocs/code/git-shortcuts/git-feature 
ls -l "$MYFILE" 
chmod +x "$MYFILE" 
[ -x "$MYFILE" ] && echo "File can't be executed, check directory rights" 
+0

Благодарим за отзыв. Тем не менее, у меня все еще есть небольшая проблема. Когда я добавляю свой код в свой .bash_profile, я получаю следующую ошибку: «-bash: MYFILE: команда не найдена» Я не знаю, почему MYFILE рассматривается как функция, а не переменная. – hawkharris

+0

Вам не нужно запускать это из .bash_profile, это одноразовая настройка - она ​​добавит исполняемый бит и покажет вам, является ли исполняемая команда, ни одна из которых не должна запускаться при каждом входе в систему. –

+0

О вашей ошибке, убедитесь, что вы * не имеете пробелы вокруг знака '=', иначе он попытается выполнить MYFILE вместо присвоения ему значения. –

Смежные вопросы