2016-02-01 65 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