循环判断语句 ( for while until )
一、for循环语句
1 列表for循环
for var in {1..10};do echo $var;done
for var in {0..10..2};do echo $var;done
for var in {10..1..2};do echo $var;done
for var in 1 2 3 4 5;do echo $var;done
for var in `seq 10`;do echo $var;done
for var in `seq 10 -2 1`;do echo $var;done
for var in $(seq 10);do echo $var;done
2 不带列表循环
for var
do
echo $var
done
echo "脚本后面有$#个参数"
3 类C语言
for (( i=1;i<=5;i++))
do
echo $i
done
4跳出循环
循环体: do....done之间的内容
continue:继续;表示循环体内下面的代码不执行,重新开始下一次循环
break:打断;马上停止执行本次循环,执行循环体后面的代码
exit:表示直接跳出程序
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
continue ##继续
fi
echo $i
done
echo "ok"
echo "-----------"
for i in {1..5}
do
if [ $i -eq 3 ];then
break ##打断,循环体外壳执行
fi
echo $i
done
echo "ok"
echo "-----------"
for i in {1..5}
do
if [ $i -eq 3 ];then
exit ##直接跳出,循环体外不可执行
fi
echo $i
done
echo "ok"
二、while循环语句
1. 特点:条件为真就进入循环;条件为假就退出循环
2. 语法结构:
while 表达式
do
command...
done
拓展案例: Shell脚本计算1-50偶数和
#!/bin/bash
echo "------while----"
num=0
i=1
while [ $i -le 50 ]
do
let i++
a=$[i%2]
if [ $a -eq 0 ];then
let num=$num+$i
fi
done
echo $num
echo "-------for-----"
num=0
for i in {1..50}
do
a=$[i%2]
if [ $a -eq 0 ];then
let num=$num+$i
fi
done
echo $num
三、until循环语句
1. 语法结构:
和while刚好相反,只要不满足条件就一直循环(屡败屡战)
until expression [ 1 -eq 1 ] (( 1 >= 1 ))
do
command
done
2. 循环打印1-5数字
#!/bin/bish
i=1
until [ $i -gt 5 ]
do
echo $i
let i++
done