我试图从bash脚本中运行mkvirtualenv
,并且我一直被告知无法找到它 - 但似乎我的系统可以'弥补它是否能找到它。任何人都可以解释为什么我可以从终端执行它,但不能从脚本执行它吗?
jimbo@wavefront:~$ locate mkvirtualenv
jimbo@wavefront:~$ which mkvirtualenv
jimbo@wavefront:~$ mkvirtualenv --version
13.1.2
jimbo@wavefront:~$
答案 0 :(得分:4)
这是因为它是附加到shell的函数。运行它来查看它:
$ type mkvirtualenv
答案 1 :(得分:1)
避免使用which
来检查二进制文件/等。它不是标准化的,并不总是可用的,并且本身就是外部二进制文件(因此比更好的选择更昂贵)。
更好的选择是type
和command
。
它们都是内置的,都是标准化的(至少在最基本的层次上),并且因为它们是内置的,所以也可以看到shell函数和别名。