我有一个"搞笑"以两种方式运行wine
的问题导致:
$> wine --version
/Applications/Wine.app/Contents/Resources/bin/wine: No such file or directory
$> `which wine` --version
wine-1.8
很久以前我在Applications
安装了葡萄酒,但现在不再了。当前(工作)安装通过Homebrew安装。我既没有发现任何环境变量弄乱了我的道路或同样。
任何可能导致这种烦恼的建议?
答案 0 :(得分:4)
使用the bash type
builtin或command -v
而不是which
来确定运行命令时shell实际执行的操作。 ( Don&#t> 使用其中任何一个的输出以您的问题建议的方式形成另一个命令;如果which
的输出包含a,则问题中给出的代码将失败带有空格的目录名,容易扩展的glob文字,或者类似的。)
which
告诉您PATH中的第一个内容,但由于它是外部工具而不是shell的一部分,因此它不知道依赖于shell的行为和&#0} #39; s州。 (想想别名,函数,散列查找等)。
如果您有别名,您可能会看到以下内容:
$ type wine
wine is aliased to `/Applications/Wine.app/Contents/Resources/bin/wine'
$ command -v wine
alias wine='/Applications/Wine.app/Contents/Resources/bin/wine'
......或者,对于一个函数:
$ type wine
wine is a function
wine ()
{
/Applications/Wine.app/Contents/Resources/bin/wine "$@"
}
$ command -v wine
wine