for循环的基本应用

for循环的基本应用
for的结构语法
for 变量名 in 取值列表
do
命令序列
done

使用for循环创建用户
for循环的基本应用
for循环的基本应用

创建for创建循环用户脚本
#!/bin/bash
userlist=$(cat /root/userlist.sh)
for username in $userlist
do
useradd $username
echo “[email protected]” | passwd --stdin $username && > /dev/null
done
~
for循环的基本应用
for循环的基本应用

添加执行权限
[[email protected] ~]# chmod +x adduser.sh
for循环的基本应用

运行脚本
for循环的基本应用

查看是否创建成功
[[email protected] ~]# cat /etc/passwd

for循环的基本应用

定义删除用户列表脚本

for循环的基本应用

运行脚本在查看是否删除
[[email protected] ~]# ./deluser.sh 运行脚本
[[email protected] ~]# cat /etc/passwd 查看etc文件

for循环的基本应用

for循环的基本应用

使用for脚本测试主机联通性
创建主机列表
[[email protected] ~]# vim hostlist.txt
192.168.100.10
192.168.100.20
192.168.100.80
for循环的基本应用

创建ping测试主机脚本
#!/bin/bash
hostlist=$(cat /root/hostlist.txt)
for host in $hostlist
do
ping -c 3 -i 0.2 -W 3 $host &> /dev/null
if [ $? -eq 0 ]
then
echo “host $host is UP!!!”
else
echo “host $host is DOWN!!”
fi
done
for循环的基本应用

添加运行权限
[[email protected] ~]# chmod +x ./pinghost.sh
for循环的基本应用

运行脚本
for循环的基本应用

判断用户输入IP地址是否开机
编写脚本

#!/bin/bash
#hostlist=$(cat /root/hostlist.txt)
read -p “请输入IP地址:” hostlist
for host in $hostlist
do
ping -c 3 -i 0.2 -W 3 $host &> /dev/null
if [ $? -eq 0 ]
then
echo “host $host is UP!!!”
else
echo “host $host is DOWN!!”
fi
done
for循环的基本应用

运行脚本
for循环的基本应用

while循环
while的语法结构

while 条件
do 命令序列
done

使用while循环创建用户
创建脚本
#!/bin/bash
hostname=“stu”
i=1
while [ $i -le 20 ]
do
useradd h o s t n a m e {hostname} hostnamei
echo “[email protected]”| passwd --stdin h o s t n a m e {hostname} hostnamei &> /dev/null
let i++
done
for循环的基本应用

添加执行权限
[[email protected] ~]# chmod +x whileadduser.sh

for循环的基本应用

查看是否创建
[[email protected] ~]# cat /etc/passwd
for循环的基本应用

批量化删除创建的用户
#!/bin/bash
hostname=“stu”
i=1
while [ $i -le 20 ]
do
userdel -r h o s t n a m e {hostname} hostnamei
let i++
done
for循环的基本应用

再次查看有没有创建的账户
[[email protected] ~]# cat /etc/passwd
for循环的基本应用

运行脚本删除用户
for循环的基本应用

case分支
case语法结构
case 变量值 in
模式1 )
命令序列1
; ;
模式2 )
命令序列2
; ;
*)
默认命令序列
Esac
编写判断用户输入的是数字字符或者符号
编写测试脚本

#!/bin/bash
read -p “请输入判断内容:” test
case “$test” in
[a-z] | [A-Z])
echo “你输入的是字母! ! !”
;;
[0-9])
echo “你输入的是数字! ! !”
;;
*)
echo “你输入的是符号! ! !”
esac
~
for循环的基本应用

添加权限
for循环的基本应用

运行脚本
for循环的基本应用

使用case编写服务控制脚本

创建服务控制脚本

#!/bin/bash
case “$1” in
start)
echo -n “启动vsftpd服务…”
;;
stop)
echo -n “停止vsftpd服务…”
pkill “vsftpd” &> /dev/null
echo “ok”
;;
status)
if pgrep “vsftpd” &>/dev/null; then
echo “vsftpd服务已经启动…”
else
echo “vsftpd服务停止…”
fi
;;
restart)
$0 stop
$1 start
;;
*)
echo “用法:$0 {start|stoo|restart|status}”
esac
~
for循环的基本应用

运行脚本测试
[[email protected] ~]# ./vsftpd.sh start
for循环的基本应用

终止vsftpd服务
[[email protected] ~]# ./vsftpd.sh stop
for循环的基本应用