我正在尝试使用类似这样的方法在 Linux 系统中查找二进制文件:
if [ -f `which $1` ] then
echo "File Found"
else
echo "File not Found"
fi
虽然代码工作正常,但问题是“which”将返回空运算符,BASH 将其解释为存在的东西,因此文件总是会找到。任何建议都会很棒。
谢谢
最佳答案
更新
经过深思熟虑,没有理由使用 [[ ]]
(或 [ ]
)。甚至没有理由使用命令替换 $()
if which "$1" > /dev/null 2>&1; then
echo "found"
else
echo "not found"
fi
如果您使用的是 bash
,那么请使用 [[ ]]
结构。好处之一(在众多好处中)是它没有这个问题
[[ -f $(which $1) ]] && echo found
此外,`` 已被弃用,请改用 $()
关于Linux 查找二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014262/