shell脚本循环小案例1

for

一、根据给出的员工名单,创建这些用户的登录账号,设置默认密码

首先需要有一个用于测试的用户名单文件,用于脚本中变量的指定。

[root@server2 ~]# vi users.txt 
aa
bb
cc
dd  //员工名单,后续可根据需要添加新的员工,再执行脚本创建用户
~  

编写脚本,循环创建员工列表里的用户,并设置默认密码123456

[root@server2 ~]# vi useradd.sh
#!/bin/bash
ULIST=$(cat /root/users.txt)   //将员工名单赋值给变量ULIST
for UNAME in $ULIST            //将名单里的员工循环赋值给变量UNAME
do
useradd $UNAME                 //创建用户
echo "123456" | passwd --stdin $UNAME &> /dev/null //设置默认密码,执行结果不显示在执行界面
done
[root@server2 ~]# chmod +x useradd.sh   //添加执行权限
[root@server2 ~]# ./useradd.sh          //执行脚本
[root@server2 ~]# tail -10 /etc/passwd    //验证并查看创建的用户`

查看结果,用户创建成功,并可以用123456密码登录主机。

在这里插入图片描述

二、备份宿主目录的文件,将离职员工的账户和宿主目录一起删除

首先需要有离职员工名单,在其中一个员工目录下创建一个文件用于验证

[root@client1 ~]# vi users1.txt
aa
bb
cc
dd
[root@client1 ~]# vi uesrdel.sh     //创建删除用户脚本
#!/bin/bash
ulist=$(cat /root/users1.txt)   //获取离职员工名单
for uname in $ulist         //遍历名单中的员工  
do                      
  a=`ls -lh /home/$uname | awk '{print $2}'`    //获取员工宿主目录下的内存占用大小
  if [ "$a" != "0" ]                    //如果用量不为0,说明有文件在其中,
  then cp -r /home/$uname /userfile_backup       //备份目录下的文件
  fi
  userdel -r $uname &> /dev/null           //连带宿主目录删除用户
done
~ 
[root@client1 ~]# chmod +x uesrdel.sh    
[root@client1 ~]# ./uesrdel.sh       //执行脚本

验证结果
在这里插入图片描述

while

一、添加20个用户,名称依次为stu1、stu2…

[root@client1 ~]# vi stu.sh
#!/bin/bash
i=1
while [ $i -le 20 ]     //控制循环次数,创建的用户数    
do
  uname="stu$i"      //赋值用户名给变量
  useradd $uname     
  let i++
done
~      

验证结果
在这里插入图片描述

二、猜测商品价格

[root@client1 ~]# vi pricegame.sh
#!/bin/bash
price=$(expr $RANDOM % 1000)   //利用系统的随机变量随机赋值一个价格,取余结果在0-999之间
times=0                    //统计猜测次数首先赋值为1
echo "商品的实际价格在0-999之间,猜猜是多少"
while true                //true 作为无限循环,因为不知道猜测次数
do
  read -p "请输入你猜测的价格:" INT      //提示从键盘输入价格
  let times++                         //一次价格,猜测次数加一次,times=times+1
  if [ $INT -eq $price ] ; then       //价格相等时
    echo "答对了,实际价格是$price,你总共猜测了$times次" 
    exit 0                            //猜对时用exit 0 退出循环
  elif [ $INT -gt $price ] ; then     //输入价格大于实际价格
    echo "太高了"
  else                //输入价格小于实际价格
    echo "太低了"
  fi
done
[root@client1 ~]# chmod +x pricegame.sh  //添加执行权限

测试结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41786285/article/details/108728005