while和for的区别:
for语句非常适合用于列表对象无规律,且列表来源是固定的场合
while对于要求控制循环次数、操作对象按数字顺序编号,按特定条件执行重复操作。
重复测试某个条件时,只要条件成立就会反复执行(无限),除非强制终止,或者exit语句退出脚本
格式:
while 条件测试操作(判断语句)
do
命令序列
done
应用领域
1、批量添加用户
#!/bin/bash
U="student" //名称
i=1 //默认从一开始
while [ $i -le 10 ] //循环十次
do
useradd $U$i
echo 123 | passwd --stdin $U$i &> /dev/null 设置密码为123并将结果输出至黑洞
let i++ //依次递增
done
until [ $i -gt 10 ]
do
useradd $U$i
echo 123 | passwd --stdin $U$i &> /dev/null
let i++
done
在/opt目录下创建while01.sh
写入一下脚本
完成后保存退出为文件添加执行权限并启动如下图
第一遍运行是不会显示的我这是第二遍运行,第一遍运行若为报错可以cat /etc/passwd查看
2.交互式批量创建用户:
#!/bin/bash
read -p "请输入要创建用户的前缀:" X
read -p "请输入要创建用户的个数:" M
read -p "请输入用户的初始密码:" N
i=1
while [ $i -le $M ] //要创建用户的个数
do
useradd $X$i
echo "$N" | passwd --stdin $X$i &> /dev/null //密码
chage -d 0 $X$i //第一次登陆强制修改密码
let i++
done
再创建wheil02.sh输入一下内容
保存退出后添加执行权限运行
到cat /etc/passwd中查看是否创建完成
强制修改密码可以到虚拟机中尝试一下如下图
这样就强制修改了.
3、猜价格游戏
#!/bin/bash
P=$(($RANDOM%1000))
T=0
echo "商品实际价格范围0~999,请猜猜看是多少?"
while true
do
read -p "请输入你猜测的价格数目:" INT
let T++
if [ $INT -eq $P ];then
echo "恭喜答对了,实际价格是$P"
echo "你总共猜测了$T次"
exit 0
elif [ $INT -gt $P ];then
echo "太高了"
else
echo "太低了"
fi
done
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。