【发布时间】:2018-08-15 19:15:38
【问题描述】:
我试图找出特定命令是如何定义的。我检查了$PATH 的所有位置,找不到任何像我的命令一样命名的文件,所以它似乎是别的东西。
这是一个使用 nvm 的示例,它不是可执行文件:
me@MacBook:~$ which cat
/bin/cat
me@MacBook:~$ which nvm
me@MacBook:~$ nvm --version
0.33.8
which nvm 什么都不返回。
在基于 unix 的系统中,类似这样的命令的“which”是什么?
【问题讨论】:
-
对于
which,它是脚本还是可执行文件并不重要。可能是别名或函数。试试type nvm -
它显然不是位于您的 PATH 中的可执行脚本——如果是,
which会找到它。你所拥有的是一个函数或一个别名。 -
哦,我不知道
which也适用于 shell/bash 文件。你说的对。nvm是一个函数。type nvm透露了。 -
(从应用程序的角度来看,使用
+x位设置和有效的 shebang 启动脚本与启动任何其他可执行文件使用相同的操作系统界面 - 在execv之前实际上没有区别-family 系统调用实际上被调用;因此,which没有可见的区别。