While循环语句

For循环语句非常适用于列表对象无规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数、操作对象按数字顺序编号、按特定条件执行重复操作等情况,则更适合适用while循环语句。

While语句的结构

使用while循环语句时,可以根据特定的条件反复执行一个命令序列,直到该条件不再满足时为止。在脚本应用中,应该避免出现死循环的情况,否则后边的命令操作将无法执行。因此循环体内的命令序列中应该包含修改测试条件的语句。以便在适当的时候使测试条件不再成立,从而结束循环。
while 条件测试操作
do
命令序列
done

while语句的执行流程:首先判断while后的条件测试操作结果,如果条件成立,则执行do。。。done循环体中的命令序列;返回while后再次判断条件测试结果,如果条件依然成立,则继续执行循环体;再次返回后到while后,再次判断。。。。如此循环。直到while后的条件测试结果不在成立为止。最后跳至done语句,表示结束循环。
使用while循环语句时,有两个特殊的条件测试操作,即true(真)和false(假)。使用true作为条件时,表示条件永远成立,循环体内的命令序列将无限执行下去,除非强制终止脚本。反之,若使用false作为条件,则循环体将不会被执行。
在这里插入图片描述
事例1:
批量添加规律编号的用户:添加包含固定的前缀字串,并按照顺序依次进行编号的账号。(名称依次为stu1。。。。。stu10)。
#vi while1.sh
#!/bin/bash
prefix=‘stu’
i=1
while [ $i -le 10 ]
do
useradd p r e f i x {prefix} prefixi
echo “123” | passwd --stdin p r e f i x {prefix} prefixi &> /dev/null
let i++
done
在这里插入图片描述
在这里插入图片描述
解释:上述脚本中,使用变量i来控制用户名称的编号,初始赋值为1,并且当取值大于10时终止循环。在循环体内部,通过语句“let i++”(等同于i=‘expr KaTeX parse error: Expected 'EOF', got '#' at position 186: …户的猜测次数和实际价格。** #̲vi cai.sh #!/bi…(expr $RANDOM % 1000)
TIMES=0
echo “商品实际价格范围为0~999,猜猜是多少?”
while true
do
read -p “请输入你的猜测价格数目:” INT
let TIMES++
if [ $INT -eq P R I C E ] ; t h e n e c h o " 恭 喜 你 , 猜 对 了 , 实 际 价 格 是 PRICE ]; then echo "恭喜你,猜对了,实际价格是 PRICE];thenecho"PRICE"
echo “你总共猜测了$TIMES次”
exit 0
elif [ $INT -gt $PRICE ]; then
echo “太高了”
else
echo “太低了”
fi
done
在这里插入图片描述
解释:通过环境变量RANDOM可获得一个2的16次方的随机整数,计算其与1000的余数即可获得0~999的随机价格;反复猜测操作使用true作为测试条件的while循环实现,当用户实际价格猜对时终止循环;判断猜测价格使用if语句实现,嵌套在while循环体内;使用变量来记录猜测次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值