记一次linux shell循环查询的错误


#!/bin/bash
for i in `seq 15 31`;
do
echo $i;
done
cat access_2013-08-${i}_192.168.200.191.log |grep "GET /kid/books/story"|grep usercode= >>usercode.txt
cat access_2013-08-${i}_192.168.200.191.log |grep "GET /kid/books/study"|grep usercode= >>usercode.txt
cat access_2013-08-${i}_192.168.200.191.log |grep "GET /kid/chineseClassic/"|grep usercode= >>usercode.txt
这样查出来只有31号的数据
只要把上面的done放到最后就行了

#!/bin/bash
for i in `seq 15 31`;
do
echo $i;
cat access_2013-08-${i}_192.168.200.191.log |grep "GET /kid/books/story"|grep usercode= >>usercode.txt
cat access_2013-08-${i}_192.168.200.191.log |grep "GET /kid/books/study"|grep usercode= >>usercode.txt
cat access_2013-08-${i}_192.168.200.191.log |grep "GET /kid/chineseClassic/"|grep usercode= >>usercode.txt
done
或者把$(seq 15 31)放入到cat里面
cat access_2013-08-$(seq 15 31)_192.168.200.191.log |grep "GET /kid/books/story"|grep usercode= >>usercode.txt
cat access_2013-08-$(seq 15 31)_192.168.200.191.log |grep "GET /kid/books/study"|grep usercode= >>usercode.txt
cat access_2013-08-$(seq 15 31)_192.168.200.191.log |grep "GET /kid/chineseClassic/"|grep usercode= >>usercode.txt
 
 

Whatever is worth doing is worth doing well.