1.for条件语句
先读取多个不同的变量值,然后逐一执行同一组命令。
从列表文件中读取主机地址,逐个测试是否在线。
从ipadds.txt中读取主机地址后赋值给HLIST变量后逐个ping列表中的主机IP地址,测试是否能够ping通:
vim ipadds.txt
内容如下:
192.168.20.6
192.168.20.47
192.168.20.120
localhost
测试Shell脚本:
#!/bin/bash
HLIST=$(cat /home/ipadds.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &> /home/jacun/jacun
if [ $? -eq 0 ] ; then
echo "$IP is OK"
else
echo "$IP is Down"
fi
done
2.while条件语句
用于重复测试某个条件,当条件成立时则继续重复执行。
随机生成一个0-999的整数,判断并提示用户输入的值过高或过低,只有当用户猜中才结束程序。
脚本中的$RANDOM是一个随机变量,用于在%1000后会得到一个介于0-999的整数后赋值给PRICE变量,while后面的true代表该循环会永远循环执行:
vim DemoRandom.sh
Shell脚本如下:
#!/bin/bash
PRICE=$(expr $RANDOM % 10000)
TIMES=0
echo "手机的价格为0-9999之间,猜猜看是多少?"
while true
do
read -p "请输入你猜测的价格:" INT
let TIMES++
if [ $INT -eq $PRICE ] ; then
echo "恭喜你答对了,实际价格是 $PRICE"
echo "你总共猜测了 $TIMES 次"
exit 0
elif [ $INT -gt $PRICE ] ; then
echo "你猜的太高了"
else
echo "你猜的太低了"
fi
done
3.case条件语句
可以根据变量的不同取值,分别执行不同的命令动作。
提示用户输入一个字符,判断该字符是字母、数字还是特殊字母。
用户输入一个字符并将其赋值给变量KEY,判断变量KEY为何种字符:
vim DemoKey.sh
Shell脚本如下:
#!/bin/bash
read -p "请输入一个字符,并按Enter键确认:" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "你输入的是字母"
;;
[0-9])
echo "你输入的是数字"
;;
*)
echo "你输入的是空格、功能键或其他控制字符"
esac