繁体   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