For循环,遍历循环
读取不同的变量值,用来逐个执行同一组命令
三种表达方式:
for i in {1…10}
do
echo $i
done
for i in $(seq 1 10)
do
echo $i
done
for ((i=1;i<=10;i++));do echo $i; done
for ((i=1,i<=10,i+=2));do echo $i; done
i++:表示i=i+1
i+=2:表示:i=i+2
IFS字段分割符:
默认包含 空格,制表符,换行符 查看:set | grep IFS
[root@localhost ~]# set | grep IFS
IFS= $ ’ \t\n’
修改成只换行:
IFS=$’ \n’
For循环的实例:
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
sum=0
read -p “请输入一个整数:” num
for ((i=1;i<=
n
u
m
;
i
+
+
)
)
d
o
s
u
m
=
num;i++)) do sum=
num;i++))dosum=[
i
+
i+
i+sum]
done
echo $sum
while循环的用法:
while condition
do
command1
command2
done
while循环的执行流程:
先对condition进行判断,如果该条件成立,就进入循环,执行while循环体中的语句这样就完成了一次循环;每次执行到done的时候都会重新判断condition是否成立,如果成立就进入下一次循环,继续执行do和done之间的语句;如果不成立就结束整个while循环执行done后面的其他shell代码。
如果一开始condition就不成立,那么程序就不会进入循环体,do和done之间的语句就没有执行的机会。
注意:在while循环体中必须有相应的语句使的condition越来越趋近于不成立
,只有这样才能最终退出循环,否则while就成为了死循环,会一直执行下去
While语句和else语句中到的condition用法都是一样的,你可以使用test或[]命令,也可以使用(())或[[]]
while循环实例:
提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
a=1
read -p “请输入一个整数” number
while [ $a -le
n
u
m
b
e
r
]
d
o
s
u
m
=
number ] do sum=
number]dosum=[
a
+
a+
a+sum]
let a++
done
echo $sum