[英]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.