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