[英]Find path to binary without which
一个开源项目,我贡献,对依赖which
,我想删除,一些Linux发行版(如Fedora 20的云版本),默认情况下不与它船,我相信它的丑陋,迫使其安装,考虑到我们对它的使用是多么微不足道。
我们所做的就是找到 Java 二进制文件的路径,然后使用该信息设置$JAVA_HOME
。
有没有办法用 Bash 内置插件来做到这一点? 一般来说,我怎样才能优雅地找到一个二进制文件,同时最小化依赖关系(比如which
)? 或者,仅使用which
是否更好,例如,如果唯一的选择是针对$PATH
中的目录运行find
并且社区认为这非常不雅?
请注意,对于与which
相关的事情,它对 Google 极其无效。
POSIX-ly 正确方法:
cmd=$(command -v whatever)
也许通过解析 shell 内置type
的输出?
~/ type python
python is /usr/bin/python
~/ type type
type is a shell builtin
用zsh
、 bash
和sh
测试
如果您使用的是bash
,则-P
选项会直接为您提供所需的结果:
~/ type -P python
/usr/bin/python
我的偏好已经提到了“类型”。 但是这个任务还有一个额外的命令:
whereis -b <file>
定位指定文件的二进制文件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.