Shell之循环语句 —— While&Until 实验

While

While循环语句:满足条件才会执行循环,不满足就结束,用于不知道循环次数,需要主动结束循环或者达到条件循环的场景

While的结构

while(条件判断)——do —— 命令序列 —— done

如:用while循环语句求出1-100的总和 

[rootalocalhost opt]# vim sum.sh
i=l
sum=0
while [ si -le 100 ]
do
Sum=$(($sum+$i))
let i++
done
echo "$sum"
[rootalocalhost opt]# sh 10.sh
5050

在命令序列结尾加上 “let i++”,为了防止死循环。

死循环

while true —— 就是写死循环的方法

随机数变量表达:$RANDOM表示随机生成一个数字

例:猜数字

 

[root@localhost opt]# vim 13.sh
num=$(($RANDOM%100+1))
time=0
while true
do
  read -p "请输入一个整数:" num1
let time++
if [ $num -eq $num1 ]
then
  echo "你猜对了"
  echo "一共猜了${time}次"
  break
elif [ $num1 -gt $num ]
then
  echo "你猜大了"
else
  echo "你猜小了"
fi
done
[root@localhost opt]# sh 13.sh 
请输入一个整数:50
你猜小了
请输入一个整数:80
你猜大了
请输入一个整数:60
你猜小了
请输入一个整数:70
你猜大了
请输入一个整数:65
你猜大了
请输入一个整数:63
你猜大了
请输入一个整数:62
你猜对了
一共猜了7次

RANDOM%+1:表示系统在1-100范围之间随机生成一个数字,用户猜大或猜小了都会有提示,猜对了并提升你共猜了几次。

Until

Until语句用来重复测试某个语句,只要当判断条件不成立时就进行循环,条件成立时终止循环

Until语句格式

until  [条件测试语句] —— do —— 命令序列 —— done

 

与While语句格式相似

例:算1-100的总和

[rootalocalhost opt]# vim sum.sh
5050
i=0
sum=0
until [ $i -gt 10 ]
do
sum=$(($i+ssum))
let i++
done
echo $sum
[rootalocalhost opt]# sh sum.sh
5050

 

实验

实验一

 

实验二 

 

While循环求和 

Until循环求和 

 实验三

 

实验四 

 

实验五 

#用户名存放在users.txt文件中,每行一个,判断文件里的用户是否存在,若该用户存在,
输出提示该用户已存在;用户存在但没设密码,则提示用户并让用户设置密码;
若该用户不存在,提示用户输入密码,建立用户并设立其密码
 
[root@localhost opt]# vim yonghu.sh
for user in `cat /opt/users.txt`
do
cat /etc/passwd | awf -F: `{print $1}` | grep "$user" &> /dev/null
if [ $? -eq 0 ]
then 
  echo "用户已存在"
  res=$(cat /etc/shadow | grep "ky30" | awk -F: `{print $2}`)
  if [ "$res" == !! ]
   then 
   echo "用户存在,无密码,请创建"
   echo "123456 | passwd --stdin $user"
  else
   echo "用户已创建密码"
  fi
else
   echo "用户不存在,创建用户"
  useradd $user
  echo "789" | passwd --stdin $user
fi
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值