Попытка настроить команду bash - PullRequest
0 голосов
/ 18 августа 2010

Я пытался настроить команду bash в Терминале на Mac.

Скрипты работают правильно, когда я выполняю их напрямую.

Я установил символические ссылки в / usr / local / bin / на текущее местоположение скриптов.Когда я пытаюсь запустить его из символической ссылки, это не работает.Я не верю, что проблема в $ PATH, потому что pip, git, ipython все существуют в этом месте.Когда я редактирую настройку $ PATH, они терпят неудачу.

Предложения?

Ответы [ 3 ]

3 голосов
/ 18 августа 2010

ls -l /usr/local/bin/foo и посмотрите, куда указывает ваша символическая ссылка на самом деле . Бетча, он сломан.

Если нет, попробуйте запустить /usr/local/bin/foo. Если это сработает, это был ваш ПУТЬ, который не прав, несмотря на то, что вы сказали в ОП.

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

0 голосов
/ 18 августа 2010

Я устанавливаю свои команды в $HOME/bin вместо /usr/local/bin, но это не имеет большого значения. Как указывалось в комментариях, один вопрос заключается в том, правильно ли установлены символические ссылки.

  • Проверьте, какую команду оболочка считает, что вы должны выполнить: which command
  • Убедитесь, что ссылка в /usr/local/bin указывает на правильный файл (и имеет разрешение на выполнение и т. Д.):
    • ls -l /usr/local/bin/command
    • ls -lL /usr/local/bin/command
  • Проверьте правильность пути интерпретатора в шебанге:
    • file /usr/local/bin/command
  • Убедитесь, что /usr/local/bin действительно находится в вашей переменной PATH: echo $PATH

Если ничего из этого не показывает проблемы, покажите нам результаты приведенных выше команд.

0 голосов
/ 18 августа 2010

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

...