所以,我有一个IP数组和一个Dates数组......两个数组的长度相同 因此,DATE [0]是分配IP [0]的日期......
我正在尝试解析整个月的日志并在达到特定日期时更改IP ...我知道这不对,所以请帮助我的代码: (Grep语句DO工作,来自其他代码,基本上只需要根据日期检查更改SEARCHPATH ....)
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
答案 0 :(得分:1)
[
和]
应该有前导和后置空格。您可以运行which [
以了解[
实际上是一个命令。 if
关键字接受布尔语句或变量,[ foo ]
用于测试foo
是真还是假。0, 1, 2, 3, ..., 31
,则可以在BASH中使用$(seq 0 31)
。 编辑:领先的0
在这里非常重要。因此,{...}
内置表示法更为可取。