我有一个“有趣”的问题,以两种不同的方式运行wine
会导致:
$> wine --version
/Applications/Wine.app/Contents/Resources/bin/wine: No such file or directory
$> `which wine` --version
wine-1.8
很久以前,我在
Applications
有一个葡萄酒装置,但现在没有了。当前(工作)安装是通过自制程序安装的。我找不到任何环境变量扰乱我的道路或类似。有什么建议会引起这种烦恼吗?
最佳答案
使用the bash type
builtin或command -v
,而不是which
,来确定运行命令时shell实际执行的操作。(不要按照问题所建议的方式使用这些命令的输出来形成另一个命令;如果which
的输出包含一个带有空格的目录名、一个易于扩展的glob文本或类似的内容,则问题中给出的代码将失败)。which
告诉您路径中的第一步是什么,但由于它是一个外部工具,而不是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 "$@"
}
$ command -v wine
wine
关于macos - 执行wine!=执行`which wine`,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35142310/