循环判断语句
一、for循环
1.for循环的三种用法
【1】列表for循环:用于将一组命令执行已知的次数
注意:此方法为三种方法中最重要也是最容易理解的方法,必须掌握
for循环格式:
for in
do
done
- for var in {1..10};do echo $var;done
1.2.3.4.5.6.7.8.9.10
- for var in {0..10..2};do echo $var;done
0.2.4.6.8.10
- for var in {10..1..2};do echo $var;done
10.8.6.4.2
- 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
练习:Shell脚本计算1-100奇数和(使用for循环方法一)
【2】不带列表的for循环执行时由用户指定参数和参数的个数
for var
do
echo $var 此处var为shell后的参数
done
echo "脚本后面有$#个参数"
练习
方法一:
#!/bin/bash
ips=$*
echo $ips
for ip in $ips 第一次循环,ip=172.25.254.20并打印出the computer ip is 172.25.254.20 ,第二次循环,ip=172.25.254.30,并打印
do
echo "the computer ip is $ip"
done
方法二:
ips=$*
echo $*
for var
do
echo "the computer ip is $var "
done
方法一:
方法二:
【3】类C风格的for循环
for (( i=1;i<=5;i++))
do
echo $i
done
练习:Shell脚本计算1-100奇数和(使用for循环方法三)
2.跳出循环
【1】循环体: do…done之间的内容
【2】continue:继续;表示循环体内下面的代码不执行,重新开始下一次循环
【3】==break:打断;马上停止执行本次循环,执行循环体后面的代码 ==
【4】exit:表示直接跳出程序
注意:continue与break的区别面试中经常提问
举例如下:
- 在1-5中,打印除了3以外的数字
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
continue
else
echo $i
fi
done
- 将上述continue脚本改写为break脚本,效果如下:
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
break
else
echo $i
fi
echo "looping"
done
- break只跳出当前循环,不会跳出下一个循环:
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
break
else
echo $i
fi
echo "looping"
done
echo "shell"
for i in {1..3}
do
echo $i
done
- 将上述break脚本改写为exit脚本
#!/bin/bash
for i in {1..5}
do
if [ $i -eq 3 ];then
exit
else
echo $i
fi
echo "looping"
done
echo "shell"
for i in {1..3}
do
echo $i
done