linux脚本 while循环语句,shell脚本(三)while循环语句

理论部分:

循环的意思就是让程序重复地执行某些语句;

whiler循环就是循环结构的一种,当事先不知道循环该执行多少次,就要用到while循环;

while循环语句的运行过程

使用while循环语句时,可以根据特定的条件反复执行一个命令,直到条件不满足为止;

while会出现死循环的过程,因此循环体内的命令序列内应包括修改测试条件的语句

while语句的语法结构:

d21ef5e5530b7b1343841b5b084e459d.png

38104583e3ca2e42296658f79ee9625f.png

注意:

使用while循环语句时,有两个特殊的条件测试操作即true(真)和false(假);

使用true时表示条件永远成立,循环体内的命令序列将会无限执行下去,除非强制终止脚本或使用exit退出脚本;

反之使用false时循环体将不会被执行; ’这两个特殊条件也可以用在if语句的条件测试中

应用实例

使用while语句执行批量添加规范的用户

stu 1 stu 2…….

我们也可以使用while批量添加用户,但是前提是用户的命名必须有规范,有规律否则无法使用while进行创建

vim useradd.sh

#!/bin/bash

user="stu"

i=1

while [ $i -le 20 ]

do

useradd  ${user}$i

echo "123456" | passwd --stdin ${user}$i &>/dev/null

echo "${user}$i Users to add success"

let i++

done

首先定义一个用户名的前缀为stu

在定义一个变量用于改变条件

while当$i 小于等于20 的时候执行下面的命令序列 let i++ 表示每循环一次i的值加1

当循环到21次的时候这个测试条件不成立了,因为21不小于等于20所以直接调到done结束循环

执行的结果

83ba05f3c1a92a6c7f13c8d31f3736c7.png

检验:

d6843d3cb506880c0cfaa47425a54799.png

398273e6858bdffc09f7ff9781ea0f3b.png

也可以使用while循环删除

vim userdel.sh

#!/bin/bash

user="stu"

i=1

while [ $i -le 20 ]

do

userdel -r   ${user}$i &> /dev/null

echo "${user}$i Users to del success"

let i++

done

执行结果

1b76597a9669d9392b6917ef82cc1536.png

实战2

针对上诉要求主要设计思路如下

if通过变量RANDOM可获得一个小于2十六次方的随机整数,计算其与1000的余数即可获得0~999的随机价格,反复操作可以通过true作为测试条件,在用户猜出实际价格为止,判断猜测价格与实际价格的过程使用if语句实现,嵌套在while循环内使用变量来计算猜测的次数

例如:1dd65111be25cccae96f4299dab1d381.png

vim caijiage.sh

#!/bin/bash

price=$(expr $RANDOM % 1000)

times=0

echo "The prices of the goods is 0-999,Can you guess what is?"

while true

do

read -p "Please enter your price:" INT

let times++

if  [ $INT -eq $price ]

then

echo "Good you guessed it"

echo "You guess the total $times times "

exit 0

elif

[ $INT -gt $price ]

then

echo "Is too high "

else

echo "It's too low "

fi

done

执行脚本的结果

0e3ebfcec47fa13b7dd69461c14bcf76.png

学会for while已经可以编写一些脚本完成简单的系统管理任务了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值