Linux 使用for循環結構

1.使用for循環結構
問題
本案例要求編寫一個Shell腳本chkhosts.sh,利用for循環來檢測多個主機的存活狀態,相關要求及說明如下:
待檢測的多個目標IP地址,存放在ipadds.txt文件內
ping檢測可參考前一天的pinghost.sh腳本
腳本能遍歷ping各主機,並反饋存活狀態
執行檢測腳本以後,反饋結果如圖-1所示。
在這裏插入圖片描述
圖-1
方案
在Shell腳本應用中,常見的for循環採用遍歷式、列表式的執行流程,通過指定變量從值列表中循環賦值,每次複製後執行固定的一組操作。
for循環的語法結構如下所示:
for 變量名 in 值列表
do
命令序列
done
步驟
實現此案例需要按照如下步驟進行。
步驟一:練習for循環基本用法
腳本1,循環輸出“我來自 XX 。”,其中XX替換爲指定的幾個城市名:
[root@svr5 ~]# vim for01.sh
#!/bin/bash
for i in “北京” “上海” “長沙” “香港” “臺灣”
do
echo “我來自 $i 。”
done
[root@svr5 ~]# chmod +x for01.sh
腳本1的運行結果測試:
[root@svr5 ~]# ./for01.sh
我來自 北京 。
我來自 上海 。
我來自 長沙 。
我來自 香港 。
我來自 臺灣 。
腳本2,列出Yum庫中vsftpd、bind、httpd、mysql-server四個軟件包的摘要描述信息(Summary行的描述文本):
[root@svr5 ~]# vim for02.sh
#!/bin/bash
for i in “vsftpd” “bind” “httpd” “mysql-server”
do
yum info KaTeX parse error: Expected 'EOF', got '#' at position 39: …e [root@svr5 ~]#̲ chmod +x for02…(cat /root/ipadds.txt)
for IP in $HLIST
do
ping -c 3 -i 0.2 -W 3 $IP &> /dev/null
if [ $? -eq 0 ] ; then
echo “Host $IP is up.”
else
echo “Host $IP is down.”
fi
done

[root@svr5 ~]# chmod +x chkhosts.sh
4)測試、驗證腳本
[root@svr5 ~]# ./chkhosts.sh
Host 192.168.4.5 is up.
Host 192.168.4.205 is up.
Host 172.16.16.78 is down.
Host 202.106.178.234 is down.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章