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