[英]Linux Find Binary File
我正在嘗試使用類似以下內容的Linux系統中的二進制文件:
if [ -f `which $1` ] then
echo "File Found"
else
echo "File not Found"
fi
雖然代碼可以正常工作,但問題是“哪個”將返回空運算符,BASH會將其解釋為存在的運算符,因此總會找到文件。 任何建議都很好。
謝謝
再多考慮一下,就沒有理由使用[[ ]]
(或使用[ ]
了)。 $()
甚至都沒有理由使用命令替換
if which "$1" > /dev/null 2>&1; then
echo "found"
else
echo "not found"
fi
如果您使用的是bash
請使用[[ ]]
構造。 好處(其中很多)之一是它沒有此問題
[[ -f $(which $1) ]] && echo found
此外,``已棄用,請改用$()
if [ `which "$1"` != "" ]; then
which
將不會返回""
當它找到二進制。
我為此喜歡“哈希”(如果您是bash用戶..)(實際上比它更可移植)
hash blahblah
bash:哈希:lklkj:找不到
hash /bin/ls <-- silently successful
此方法在Linux和OSX上類似地工作,其中“哪”具有不同的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.