3

比方说,我有以下结构:

/usr/bin/app
/home/me/bin/app

$/usr/bin/app --version--> v1$/home/me/bin/app --version--> v2

所以,当我执行一些命令时,比如说$app --version,它返回v1,但是我$which app给了我/home/me/bin/app,所以,我认为,它必须执行第二个应用程序,然后返回v2。为什么不发生?

换句话说,该构造$app是否等效于$$(which app),出于什么原因它不适用?

4

1 回答 1

6

由于从linux 哈希表which中获取哈希值,当你安装一个新的同名可执行文件时,shell 仍然继续使用旧表,所以它会带来冲突。我相信你也可以使用rehash命令,而不是使用(这有效)。(你也应该使用 zsh,它非常酷 :))hash -d <appname>

于 2013-05-16T10:32:37.283 回答