循环语句while
while循环语句,只要条件成立就反复执行对应的命令操作,
直到命令不成立或为假。
1.while循环基础语法
#当条件测试成立(条件测试为真),执行循环体
while 条件测试
do
循环体
done
----------------------------------------------
#!/bin/bash
i=0
while [ $i -lt 10 ]
do
echo 123
let i++
done
----------------------------------------------
#!/usr/bin/bash
i=10
while [ $i -gt 0 ]
do
echo $i $i
let i--
done
----------------------------------------------
#!/bin/bash
i=10
while [ $i -gt 0 ]
do
sum=$(( $i + $i ))
echo $i + $i = $sum
let i--
done
----------------------------------------------
while 循环基本使用示例,降序输出10到1的数字
#!/bin/bash
a=1
b=10
while [ $a -le 10 ]
do
sum=$(( $a + $b ))
echo $a + $b = $sum
let a++
let b--
done
======================================
案例:使用while读入文件方式,批量创建用户。
while默认按行取值。
while read line
do
echo $line
done<user.txt
=============================
升华版:
#!/usr/bin/bash
while read line
do
#1.判断用户是否存在
id $line &>/dev/null
if [ $? -eq 0 ];then
echo "User:$line already exists"
else
useradd $line &>/dev/null
echo "User: $line Create OK"
fi
done<user.txt
======================================
2.内置跳出循环语句指令
在我们使用循环语句进行循环的过程中,有时候需要在未达到循环结束
条件时强制跳出循环,那么shell给我们提供了内置方法来实现该功能:
exit、break、continue
(1)关于exit的案例:
#!/bin/bash
for i in {1..3}
do
echo "123"
exit
echo "456"
done
echo "Done..."
========================
(2)break,结束当前循环,或跳出本层循环
#!/bin/bash
for i in {1..3}
do
echo "123"
break
echo "456"
done
echo "Done..."
=========================================
(3)continue 忽略本次循环剩余的代码,直接进行下一次循环
#!/bin/bash
for i in {1..3}
do
echo "123"
continue
echo "456"
done
echo "Done..."
案例:continue,
#!/bin/bash
for i in 'seq 10'
do
useradd te$i &>/dev/null
if [ $? -eq 0 ];then
echo "Create User $i Success"
else
echo "Create User $i already exists"
continue
fi
done
总结:
1.exit,当脚本碰到exit时,直接退出,剩余不管有多少代码都不执行。
2.break,结束当前循环,但会执行循环之后的所有的代码。
3.continue 忽略本次循环剩余的所有代码,直接进行下一次循环,
直到循环结束,然后继续循环之后的代码。
===============================================