概述
文章目录
- 一、for 循环语句的结构
- 二、while循环语句
一、for 循环语句的结构
- 读取不同的变量值,用来逐个执行同一组命令
格式:
<for> 变量名 <in> 取值列表
<do>
命令序列
<done>
例:
<for> 收件人 <in> 邮件地址列表
<do>
发送列表
<done>
实例1:
要求
- 批量添加客户
- 用户名存放在users.txt文件中,每行一个
- 初始密码军设为123456
- 验证脚本
[root@localhost ~]#vim for2.sh #创建脚本文件名为for.sh
#!/bin/bash
i=`cat /root/users.txt` #将要创建的用户名放到users.txt文件中(一行一个用户名)
for a in $i #每次循环从列表里读取一个用户名
do
useradd $a #创建用户
echo "123456" | passwd --stdin $a &> /dev/null #为账户设置密码,为了不让密码信息泄露所以全部仍进黑洞中
echo "创建用户${a}成功" #输出
done
保存退出
[root@localhost ~]#chmod +x for2.sh 赋权
[root@localhost ~]#./for2.sh 运行脚本
创建用户cat成功
创建用户pig成功
创建用户dog成功 创建成功
创建用户yunyang成功
创建用户bird成功
创建用户baoshuaipeng成功
[root@localhost ~]#vim for2.sh
批量删除用户,在刚刚脚本基础上进行修改
[root@localhost ~]#vim for2.sh
#!/bin/bash
i=`cat /root/users.txt`
for a in $i
do
userdel -r $a
#echo "123456" | passwd --stdin $a &> /dev/null
echo "删除用户$a成功"
done
[root@localhost ~]#./for2.sh
删除用户cat成功
删除用户pig成功
删除用户dog成功
删除用户yunyang成功
删除用户bird成功
删除用户baoshuaipeng成功
实例2:
要求
- 根据IP地址检查主机状态
- IP地址存放在ipadds.txt文件中,每行一个
- 使用ping命令检测各主机的连通性
[root@panrj ~]#vim ip.sh
#!/bin/bash
i=`cat /root/ip.txt`
for aa in $i
do
ping -c3 -i0.2 -W3 $aa &> /dev/null ##开始ping检测,-c是ping的次数,-i是每次ping的时间,-w是ping的时候延时时间
if [ $? -eq 0 ] ## #判断语句,当使用$?返回0时,说明上面ping成功
then
echo "$aa开启"
echo "$aa关闭"
fi
done
[root@panrj ~]#chmod +x ip.sh
[root@panrj ~]#source ip.sh
192.168.182.1开启
192.168.182.1关闭
192.168.182.2开启
192.168.182.2关闭
实例三:
计算1到100的所有的整数和。
[root@192 ~]#vim for.sh
#!/bin/bash
sum=0 ##对于整数和的运算来说,整数和sum也算是一个变量,所以在运算之前我们需要先定义整数和起始的一个数字,这里起始的数字是0,因为1-100的和是从0开始算起的。
for i in $( seq 1 1 100 ) 《或者 for i in {1..100}》 ##遍历需要运算的数字区间,也就是0-100
do
sum=$[$i+$sum] #这里是求和的运算。我们可以理解为:这次遍历出来的数字,加上上一次运算出来的整数的和即为这次算出来的整数和。比如这次循环遍历到了3,上次的和是1+2=3,所以这次就等于上次的和1+2=3加上这次遍历的数字3,就得出这次循环算出来的整数和为6.
done
echo $sum
[root@192 ~]#chmod +x for.sh
[root@192 ~]#./for.sh
5050
二、while循环语句
while语句结构
重复测试某个条件,只要条件成立则反复执行。
语句结构:
<while> 条件测试操作
<do>
命令序列
<done>
实例一:
要求
- 批量添加用户
- 用户名称以stu开头,按数字顺序进行编号
- 一共添加20个用户,即stu1,stu2…stu20
- 初始密码均设为123456
[root@192 ~]#vim while.sh
#!/bin/bash
i=0
while [ $i -le 20 ]
do
useradd stu$i
echo "123456" | passwd --stadin stu$i &> /dev/null
echo "用户stu$i添加成功"
<let i++ #使用let命令进行运算,使a每次加1> 这一步是比较重要的,不加这一步的话会进入死循环
done
在此基础上也可以修改进行删除用户
[root@192 ~]#vim while.sh
#!/bin/bash
i=0
while [ $i -le 20 ]
do
#useradd stu$i
# echo "123456" | passwd --stadin stu$i &> /dev/null
#echo "用户stu$i添加成功"
userdel -r stu$i
<let i++ #使用let命令进行运算,使a每次加1> 这一步是比较重要的,不加这一步的话会进入死循环
done
实例二:
猜商品价格小游戏
#!/bin/bash
a=$[ $RANDOM % 1000 ]
b=0
while [ $b -lt 1 ]
do
read -p "猜猜商品的价格: " i
if [ $i -lt $a ]
then
echo "猜少啦,再猜一次"
elif [ $i -gt $a ]
then
echo "哎又多啦,再来一次:"
elif [ $i -eq $a ]
then
echo " 哎哟不错噢!!答对啦! "
b=2
fi
done
成果如下:
最后
以上就是清脆微笑为你收集整理的Shell脚本的三种循环for、while、if------未完的全部内容,希望文章能够帮你解决Shell脚本的三种循环for、while、if------未完所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复