2016-01-22 2 views
0

Я пытаюсь запустить mkvirtualenv из сценария bash, и мне все время говорят, что его невозможно найти, но, похоже, моя система не может сделать подумайте о том, сможет ли он его найти. Может кто-нибудь объяснить, почему я могу выполнить его с терминала, но не из сценария?Не удается найти mkvirtualenv, но может выполнить его

[email protected]:~$ locate mkvirtualenv 
[email protected]:~$ which mkvirtualenv 
[email protected]:~$ mkvirtualenv --version 
13.1.2 
[email protected]:~$ 

ответ

1

Избегайте использования which для проверки двоичных файлов/и т.д.. Он не стандартизирован, не всегда доступен и сам внешний двоичный файл (и, следовательно, дороже, чем лучший выбор).

Лучший выбор: type и command.

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

+0

Очень образованный, спасибо! – jimbofreedman

4

Это потому, что это функция, прикрепленная к оболочке. Выполнить это, чтобы увидеть его:

$ type mkvirtualenv 
+0

Большое спасибо - жесткий выбор по выбору ответа Боюсь :( – jimbofreedman