Linux查找二进制文件

Bla*_*543 3 linux bash shell

我试图在Linux系统中使用以下内容找到二进制文件:

if [ -f `which $1` ] then
    echo "File Found"
else
    echo "File not Found"
fi
Run Code Online (Sandbox Code Playgroud)

虽然代码工作正常但问题是"哪个"将返回一个null运算符,BASH将其解释为存在的东西,因此总会找回文件.任何建议都会很棒.

谢谢

Sie*_*geX 6

更新

经过一番思考后,没有理由使用[[ ]](或者[ ]就此而言).甚至没有理由使用命令替换$()

if which "$1" > /dev/null 2>&1; then
  echo "found"
else
  echo "not found"
fi
Run Code Online (Sandbox Code Playgroud)

如果您正在使用,bash请使用该[[ ]]构造.其中一个好处(许多)是它没有这个问题

[[ -f $(which $1) ]] && echo found
Run Code Online (Sandbox Code Playgroud)

另外,``已弃用,请$()改用