(转载)http://www.iteye.com/topic/516602
因为需求需要处理大量log文件,考虑到awk的高效,但处理前需要判断文件是否存在,因.log文件有多个,所以用if判断。
if [ -e *.log ]; then
此时如果文件不存在,则不报错误。但如果有多个.log文件存在,则报错
if[ too many arguments 事实上因为-e 或者 -f 都只能接受一个参数,用了通配符后会有多个文件存在的可能就导致多个参数出现的可能,所以报错。
经过多次测试也找了些资料,发现以下解决方法:
files=$(ls *.log 2> /dev/null | wc -l)
if [ "$files" != "0" ] ;
then
即可达到目的。
原文链接:https://www.f2er.com/bash/391390.html