shell 脚本实验 -5 while循环

1、通过while实现 1-100 相加的脚本

vim jiafa.sh

js 复制代码
#!/bin/bash
sum=0
i=0
while [ $i -le 100 ]
do
sum=$[i+sum]
let i++
done
echo $sum


测试
[root@localhost opt]# bash jiafa.sh 
5050
[root@localhost opt]# 

2、通过while实现useradd添加用户

vim user.sh

js 复制代码
#!/bin/bash
i=1
while [ $i -le 20 ]
do
if id stu$i
then
echo "用户已存在"
let i++
else
useradd -M -s /sbin/nologin stu$i
echo "123456" | passwd --stdin stu$i
let i++
fi
done



测试
[root@localhost opt]# bash user.sh 
id: stu1: no such user
更改用户 stu1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu2: no such user
更改用户 stu2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu3: no such user
更改用户 stu3 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu4: no such user
更改用户 stu4 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu5: no such user
更改用户 stu5 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu6: no such user
更改用户 stu6 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu7: no such user
更改用户 stu7 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu8: no such user
更改用户 stu8 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu9: no such user
更改用户 stu9 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu10: no such user
更改用户 stu10 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu11: no such user
更改用户 stu11 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu12: no such user
更改用户 stu12 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu13: no such user
更改用户 stu13 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu14: no such user
更改用户 stu14 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu15: no such user
更改用户 stu15 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu16: no such user
更改用户 stu16 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu17: no such user
更改用户 stu17 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu18: no such user
更改用户 stu18 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu19: no such user
更改用户 stu19 的密码 。
passwd:所有的身份验证令牌已经成功更新。
id: stu20: no such user
更改用户 stu20 的密码 。
passwd:所有的身份验证令牌已经成功更新。

3、通过while实现猜商品价格游戏

vim cai.sh

js 复制代码
#猜商品价格
#通过变量RANDOM获得随机数
#提示用户猜测并记录次数,猜中后退出循环

p=`echo $[RAMDOM%1000+1]`
t=0
while true
do
read -p "请输入你猜的价格:" h
let t++
if [ $h -eq $p ]
then
echo "恭喜你猜中了,商品的价格是${p},您一共猜了${t}次"
exit
elif [ $h -gt $p ]
then
echo "您猜的价格过高"
elif [ $h -lt $p ]
then
echo "您猜的价格过低"
else
echo "您的输入有误,请重新输入价格0-1000"
bash $0
fi
done


测试
[root@localhost opt]# bash cai.sh 
请输入你猜的价格:500
您猜的价格过高
请输入你猜的价格:250
您猜的价格过高
请输入你猜的价格:125
您猜的价格过高
请输入你猜的价格:55
您猜的价格过高
请输入你猜的价格:20
您猜的价格过高
请输入你猜的价格:10
您猜的价格过高
请输入你猜的价格:6
您猜的价格过高
请输入你猜的价格:3
您猜的价格过高
请输入你猜的价格:2
您猜的价格过高
请输入你猜的价格:1
恭喜你猜中了,商品的价格是1,您一共猜了10次
相关推荐
Sapphire~6 小时前
Linux-07 ubuntu 的 chrome 启动不了
linux·chrome·ubuntu
伤不起bb6 小时前
NoSQL 之 Redis 配置与优化
linux·运维·数据库·redis·nosql
广东数字化转型6 小时前
nginx怎么使用nginx-rtmp-module模块实现直播间功能
linux·运维·nginx
啵啵学习6 小时前
Linux 里 su 和 sudo 命令这两个有什么不一样?
linux·运维·服务器·单片机·ubuntu·centos·嵌入式
半桔7 小时前
【Linux手册】冯诺依曼体系结构
linux·缓存·职场和发展·系统架构
网硕互联的小客服7 小时前
如何利用Elastic Stack(ELK)进行安全日志分析
linux·服务器·网络·安全
冰橙子id8 小时前
linux——磁盘和文件系统管理
linux·运维·服务器
无聊的小坏坏9 小时前
环境变量深度解析:从配置到内核的全链路指南
linux·bash
才鲸嵌入式9 小时前
01 Ubuntu20.04下编译QEMU8.2.4,交叉编译32位ARM程序,运行ARM程序的方法
linux·c语言·单片机·嵌入式·arm·qemu·虚拟机
伤不起bb10 小时前
Kafka 消息队列
linux·运维·分布式·kafka