linux shell program – for in 循环语句的用法

在写一个小脚本时,需要循环显示每月日期当参数,传递给请求的地址。大脑一拍,直接用for循环做了,如果python可以直接使用for xxx in range(0,32),那么Linux是不是也有类似的写法呢,答案是正确的,不过略微有点小改动。语法如下:
for 无$变量 in 字符串
do
$变量
done
利用for in格式对字符串按空格切份的功能,直接遍历,于是上面的字符串我们可以随便定义,只需空格隔开即可。

SERVICES="22 80 25 110 8000 23 20 21 3306 "
for x in $SERVICES
do
    iptables -A INPUT -p tcp --dport $x -m state --state NEW -j ACCEPT
done

for i in a b c 字符串列表A B C
字符串用空格分隔,没有括号,没有逗号, 然后循环将其依次赋给变量i.变量没有$
于是我们的日志处理脚本,可以这么写了

#!/bin/sh
DAYS="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31"
for dst in $DAYS
do
/usr/bin/wget "http://gamecenter.renren.com/weige.jsp?y=$1&m=$2&d=$dst" -O a.txt
done