簡體   English   中英

Linux查找二進制文件

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM