案例一:批量检测多个主机的存活状态
命令备注:ping命令可以测试某台主机的连通性,
使用-c选项可以设置ping的次数,
使用-i选项可以设置多次ping之间的间隔时间(单位秒),
使用-W选项可以设置ping不通时的超时时间(单位秒)。
- vim checkhosts.sh
#!/bin/bash
for i in {1..254}
do
ping -c 3 -i 0.2 -W 1 192.168.4.$i &> /dev/null
if [ $? -eq 0 ];then
echo "Host 192.168.4.$i is up."
else
echo "Host 192.168.4.$i is down."
fi
done
案例二:批量检测多个主机的存活状态
创建users.txt,写入无规律的账户名称,最后使用for循环读取该文件,
批量创建账户并设置密码。
- vim useradd.sh
#!/bin/bash
for i in `cat /root/users.txt`
do
useradd $i
echo 123 | passwd --stdin $i
done
案例三:while循环一般用法
- 无心的死循环脚本
- vim while01.sh
#!/bin/bash
i=3
while [ $i -le 10 ]
do
echo "$i"
done
- 有效循环脚本
- vim while02.sh
#!/bin/bash
i=3
while [ $i -le 10 ]
do
echo "$i"
let i++
done
- 死循环的一般格式:
- vim while03.sh
#!/bin/bash
while :
do
echo "hello world"
done
提示用户猜测一个随机数,直到才对为止
使用系统自带变量RANDOM提取随机数(1-100),使用while :制作死循环
- vim guess.sh
#!/bin/bash
num=$[RANDOM%100+1]
i=0
while :
do
read -p "请输入随机数1-100,你猜:" guess
let i++
if [ $guess -eq $num ];then
echo "猜对了。"
echo "你猜了$i次。"
exit
elif [ $guess -gt $num ];then
echo "猜大了。"
else
echo "猜小了。"
fi
done