第七章 Shell脚本应用(三)

2020/11/13 11:42
阅读数 23

1.学会使用for、while循环语句

for语句的结构
1.读取不同的变量值,用来逐个执行同一组命令
for 变量名 in 取值列表
do
  命令序列
done




用户名存放在users.txt文件中,每行一个
[root@localhost ~]# cat /root/users.txt
sifeichang
sifeizai
feichangguohuozai



初始密码均设为123456

#!/bin/bash

user_list=$(cat /root/users.txt)

for username in $user_list

do
useradd $username &> /dev/null
echo “123456” | passwd --stdin $username &> /dev/null
echo “用户 $username 已创建并设置初始密码”
done



在这里插入图片描述

[root@localhost ~]# cat user.sh

在这里插入图片描述
[root@localhost ~]# tail -3 /etc/passwd

在这里插入图片描述

根据IP地址检查主机状态
IP地址存放在aaa.txt文件中,每行一个
[root@localhost ~]# cat /root/aaa.txt
192.168.14.17
192.168.14.11
192.168.10.110
192.168.10.120
192.168.10.10






使用ping命令检测各主机的连通性

[root@localhost ~]# ./aaa.sh
在这里插入图片描述

查看 /etc/passwd 有多少个用户不能本地登录 /sbin/nologin

依次输出

使用for循环语句

grep “/sbin/nologin$” /etc/passwd | awk -F: ‘{print $1}’> bbb.txt

#!/bin/bash

nlog_user=$(cat bbb.txt)

for user in ${nlog_user}

do
echo “$user 非本地登录用户”

done

99乘法表初始脚本:
#!/bin/bash

for x in {1…3}

do
for y in {1…3}
do
echo "$x * $y = ( ( (( ((x*$y))
done



done

while语句的结构

重复测试某个条件,只要条件成立则反复执行

1.批量添加用户
用户名称以stu开头,按数字顺序进行编号
一共添加20个用户,即sfz1、sfz2、……、sfz20
初始密码均设为123456


[root@localhost ~]# cat s.sh
#!/bin/bash

PREFIX=“sfz”
i=1

while [ $i -le 20 ]

do
useradd P R E F I X {PREFIX} PREFIXi

echo "123456" | passwd --stdin     

P R E F I X {PREFIX} PREFIXi &> /dev/null

let i++

done

[root@localhost ~]# ./s.sh
[root@localhost ~]# grep “sfz” /etc/passwd | tail -3

在这里插入图片描述

1.猜商品价格游戏
通过变量RANDOM获得随机数
提示用户猜测并记录次数,猜中后退出循环
[root@localhost ~]# vi youxi.sh
#!/bin/bash
PRICE=$(expr $RANDOM % 500)
TIMES=0
echo “商品实际价格为0-499之间,猜猜看是多少?”






while true

do
read -p “请输入你猜测的价格数目:” INT"
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo “恭喜你答对了,实际价格是 $PRICE”
echo “你总共猜测了 $TIMES 次”
elif [ $INT -gt $PRICE ] ; then
echo “太高了!”
else
echo “太低了!”
fi
done










[root@localhost ~]# ./youxi.sh

在这里插入图片描述

在这里插入图片描述

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部