循环
shell中for循环的表现形式:
1、数字段形式
for i in {1..10};do echo $i;done
还支持按规定的步数进行跳跃的方式实现列表for循环,例如计算1~100内所有的奇数之和。 sum=$((sum+i))

sum=0 for i in {1..10..2} do let "sum+=i" done echo "sum=$sum"
2、详细列出(字符且项数不多)
for f in file1 file2 file3 file4 file5;do echo $f;done
3、对存在的文件进行循环
for f in `ls *.sh`;do echo $f;done
4、类C风格的for循环也被称为计次循环
for ((i=1;i<5;i++));do echo $i;done
while循环
也称为前测试循环语句,重复次数是利用一个条件来控制是否继续重复执行这个语句。为了避免死循环,必须保证循环体中包含循环出口条件即表达式存在退出状态为非0的情况。
(1)计数器控制的while循环

sum=0 i=1 while(( i <= 100 )) do let "sum+=i" let "i += 2" done echo "sum=$sum"
(2)结束标记控制的while循环
设置一个特殊的数据值(结束标记)来结束while循环

echo "Please input the num(1-10) " read num while [[ "$num" != 4 ]] do if [[ "$num" < 4 ]] then echo "Too small. Try again!" read num elif [ "$num" -gt 4 ] then echo "To high. Try again" read num else exit 0 fi done echo "Congratulation, you are right! "
(3)标志控制的while循环 使用用户输入的标志值来控制循环的结束(避免不知道循环结束标志的条件)

echo "Please input the num " read num sum=0 i=1 signal=0 while [[ "$signal" -ne 1 ]] do if [ "$i" -eq "$num" ] then let "signal=1" let "sum+=i" echo "1+2+...+$num=$sum" else let "sum=sum+i" let "i++" fi done
python中循环的表现形式:
Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来。

>>> names = ['Mic', 'Bob', 'Jcy'] >>> for name in names: ... print name ... Mic Bob Jcy
range(10)就可以生成0-10的整数序列,计算如下:

sum = 0 for x in range(10): sum += x print sum
第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。
比如我们要计算100以内所有奇数之和,可以用while循环实现:

sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print sum
在循环内部变量n
不断自减,直到变为-1
时,不再满足while条件,循环退出。
循环控制语句
1、 break 命令不执行当前循环体内break下面的语句从当前循环退出.
2、continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行
条件判断
Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行,基本形式为:

if <条件判断1>: <执行1> elif <条件判断2>: <执行2> elif <条件判断3>: <执行3> else: <执行4>
还可以简写为:

if x: print 'True' 只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False。
附1:
Linux Shell中写循环时,常常要用到变量的自增。
我所知道的,bash中,变量自增,目前有五种方法(红色常用):
1、((i++))
2、i=$(( $i + 1 ))
3、let i+=1
4、i=`expr $i + 1`
5、i=$[$i+1]
附:乘法口决表:

for ((i=1;i<=9;i++)) do for ((j=1;j<=i;j++)) do #let "sum=i*j" sum=$((i*j)) #这种方式比较常用 echo -n "$i*$j=$sum " done echo " " #换行 done