我试图在Linux系统中使用以下内容找到二进制文件:
if [ -f `which $1` ] then
echo "File Found"
else
echo "File not Found"
fi
Run Code Online (Sandbox Code Playgroud)
虽然代码工作正常但问题是"哪个"将返回一个null运算符,BASH将其解释为存在的东西,因此总会找回文件.任何建议都会很棒.
谢谢
经过一番思考后,没有理由使用[[ ]]
(或者[ ]
就此而言).甚至没有理由使用命令替换$()
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)
另外,``已弃用,请$()
改用