所以,我有一个IP阵列和一个日期阵列......两个阵列长度相同 因此,DATE [0]是分配IP [0]的日期。BASH通过多个阵列循环
我试图解析整个月份的日志,当它打到某个日期时更改IP ...我知道这是不正确的,所以请帮助我的代码: (Grep语句做的工作,与其他代码,基本上只需要搜索路径取决于日期检查改变....)
ARRAY_COUNTER=0
NEW_GREP_TERM=${IPS[0]}
for i in {01..31}
do
SEARCHPATH=${BASEPATH}/${DEF_YEAR}${DEF_MONTH}/SG_22[8-9]${DEF_MONTH}${i}*
zgrep --no-filename $NEW_GREP_TERM $SEARCHPATH | awk -f /usr/local/bin/cvsit.awk >> $OUTFILE
if [$i = ${DATES[$ARRAY_COUNTER]}]
then
NEW_GREP_TERM = ${IPS[$ARRAY_COUNTER]}
zgrep --no-filename $NEW_GREP_TERM $SEARCHPATH | awk -f /usr/local/bin/cvsit.awk >> $OUTFILE
ARRAY_COUNTER=$ARRAY_COUNTER+1
fi
done
该代码包含语法错误,没有任何问题。 – jordanm
你必须在命令名称周围放置空格,例如'['(''和'['命令期望它的最后一个参数是''',如果不是)抱怨。 –
对于'bash',最好使用[['和']]',它更聪明,但便携性更低。你将会有更少的语法错误,并且这种方式的混淆行为更少。 – jpaugh