2016-02-01 37 views
2

我有一个“有趣”的问题,其中在两个各自的方式运行的结果在wine执行酒=执行`这wine`

$> wine --version 
/Applications/Wine.app/Contents/Resources/bin/wine: No such file or directory 

$> `which wine` --version 
wine-1.8 

Applications有酒安装在很久以前,但不了。当前(工作)安装通过Homebrew安装。我找不到任何环境变量搞乱了我的路径,或者同样如此。

有什么建议可能会导致这种烦恼?

回答

4

使用the bash type builtincommand -v而不是which来确定您的shell在命令运行时实际执行的操作。 (不要使用这些输出中的任何一个以您的问题建议的方式形成另一个命令;如果which的输出包含目录名称并带有空格,则问题中提供的代码将失败,扩展或类似)。

which告诉你什么是你的PATH中的第一个,但由于它是一个外部工具而不是shell的一部分,它不知道依赖于shell的状态的行为。 (认为​​别名,函数,哈希查找等)。

如果你有一个别名,你可能会看到类似以下内容:

$ 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 "[email protected]" 
} 
$ command -v wine 
wine 
+0

谢谢你的解释! – gustafbstrom