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