我试图在Linux系统中使用这样的东西来find一个二进制文件:
if [ -f `which $1` ] then echo "File Found" else echo "File not Found" fi
而代码工作正常的问题是“哪个”将返回一个空运算符,BASH解释为存在的东西,所以一个文件总是回来find。 任何build议将是伟大的。
谢谢
Bash:find并复制
如何把bash / awk命令放入一个variables(不是输出命令)
将GEtvariables从一个Bash / PHP脚本传递到另一个
用bash脚本设置p4客户端
使用for循环seq分配dynamicbashvariables名称
将命令的输出分配给shell脚本中的variables
如何查找最近x分钟内修改的文件(查找-mmin不能按预期工作)
使用awk,grep,sedparsing大型日志文件(〜5gb)时的性能问题
从另一个脚本运行bash脚本而不等待脚本完成执行?
if [ `which "$1"` != "" ]; then
当它找到二进制文件时不会返回"" 。
更新
经过一番思考,没有理由使用[[ ]] (或[ ] )。 甚至没有理由使用命令替换$()
if which "$1" > /dev/null 2>&1; then echo "found" else echo "not found" fi
如果你使用bash那么请使用[[ ]]构造。 其中一个好处(很多)是没有这个问题的
[[ -f $(which $1) ]] && echo found
另外,“不赞成使用$()
我喜欢这个“哈希”(如果你是一个bash用户..)(它实际上比它更可移动的行为)
hash blahblah
bash:hash:lklkj:找不到
hash /bin/ls <-- silently successful
这种方法在Linux和OSX上的工作方式类似,其中“哪个”具有不同的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。