本節(jié)課的腳本也同樣共享在share中了。
第四天:循環(huán)結(jié)構(gòu)
內(nèi)容大綱:
應(yīng)用實(shí)例分析
for循環(huán)
while循環(huán)
for循環(huán)的原理
達(dá)到效果
根據(jù)昨天的菜單修改。 選擇1、2、3后還會(huì)提示是否繼續(xù)選擇的功能。選擇4仍然是退出操作。
for variable in list list 變量列表池
do
command1
command2
done
實(shí)例一
forlist.sh
#!/bin/bash
#for with list
for loop in 1 2 3 4 5 定義loop的變量 1 2 3 4 5是變量列表
do
echo ${loop}
done
當(dāng)后面沒(méi)有,即等于0,則停止循環(huán)。
實(shí)例二
var.txt 為了證明變量是回車(chē)或者空格分隔,除非雙引號(hào)專(zhuān)門(mén)分隔
1 22
3
4
5
6
forfile.sh
#!/bin/bash
for loop in `cat var.txt`
do
echo ${loop}
done
實(shí)例三
編寫(xiě)一個(gè)腳本自動(dòng)生成一個(gè)C類(lèi)IP地址段
IP地址段網(wǎng)絡(luò)部分由用戶(hù)指定
./ipaddr.sh 192.168.1
192.168.1.1
192.168.1.2
……
192.168.1.254
#!/bin/bash
for ip in `seq 1 254` seq 產(chǎn)生步進(jìn)為1,即1-254的值
do
echo ${1}.${ip}
done
for循環(huán)嵌套
for 變量名1 in 列表1
do
for 變量名2 in 列表2
do
命令1
…
done
done
實(shí)例四
編寫(xiě)一個(gè)腳本自動(dòng)生成一個(gè)C類(lèi)IP地址段
IP地址段網(wǎng)絡(luò)部分由用戶(hù)指定,主機(jī)結(jié)束部分由用戶(hù)指定
./ipaddr2.sh 192.168.1 100
192.168.1.1
192.168.1.2
……
192.168.168.1.100
#!/bin/bash
for ip4 in `seq 1 ${2}`
do
echo ${1}.${ip4}
done
#!/bin/bash
for ip3 in `seq 1 5`
do
for ip4 in `seq 1 ${2}`
do
echo ${1}.${ip3}.${ip4}
done
done
while循環(huán)的原理
界限測(cè)試=條件測(cè)試
真假測(cè)試。
如果一直為真的話(huà)則不會(huì)停止, 死循環(huán)。
while的格式
while 條件
do
命令1
命令2
done
while的應(yīng)用場(chǎng)景
while死循環(huán)
while [ "1" == "1" ]
do
…
done
while條件循環(huán)
while [ ${num} –lt 10] 小于10一直循環(huán)
do
…
done
解決問(wèn)題。
使用while來(lái)產(chǎn)生一個(gè)死循環(huán)
通過(guò)exit來(lái)退出整個(gè)腳本
menu-while.sh
#!/bin/bash
while [ "1" == "1" ]
do
clear
echo “——————–menu—————–”
echo “1) Show Time”
echo “2) CPU load”
echo “3) Memory free”
echo “0) Exit”
echo “——————————————–”
echo -n “Enter you chose [0-3]:”
read Chose
case ${Chose} in
0) exit ;;
1) date +%T;;
2) uptime | awk -F ‘[,:]‘ ‘{print $7}';;
3) free -m | awk ‘$1==”Mem:”{print $4}';;
*) echo “This is not between 0-3.” ;;
esac
echo -n “Do you contine [y/n]:”
read contine
if [ "${contine}" == "n" -o "${contine}" == "N" ]
then
exit
fi
done
課后練習(xí)
編寫(xiě)一個(gè)腳本,產(chǎn)生一個(gè)二級(jí)的菜單。
第一級(jí)有三個(gè)功能項(xiàng):cpu info , memory info ,exit
cpu info 第二級(jí)中有四個(gè)功能項(xiàng):分別是顯示cpu的類(lèi)型,顯示cpu的負(fù)載,返回主菜單,退出腳本
memory第二級(jí)中有四個(gè)功能項(xiàng):分別是顯示內(nèi)存剩余量,swap的剩余量,返回主菜單,退出腳本。
總結(jié)回顧
for循環(huán)的特性
他和c語(yǔ)言和java不一樣,不是根據(jù)判斷語(yǔ)句去控制次數(shù)
for實(shí)現(xiàn)死循環(huán)很難。while做死循環(huán)很簡(jiǎn)單。
您可能感興趣的文章:- linux shell數(shù)組深入學(xué)習(xí)理解
- linux shell腳本學(xué)習(xí)xargs命令使用詳解
- Linux學(xué)習(xí)之CentOS(一)----在VMware虛擬機(jī)中安裝CentOS 7(圖文教程)
- linux Shell學(xué)習(xí)筆記第一天
- linux Shell學(xué)習(xí)筆記第三天
- Linux shell腳本基礎(chǔ)學(xué)習(xí)詳細(xì)介紹(完整版)
- linux Shell學(xué)習(xí)筆記第五天
- linux Shell學(xué)習(xí)筆記最后一節(jié),溫故與知新
- linux Shell學(xué)習(xí)筆記第二天
- linux命令學(xué)習(xí)之10個(gè)網(wǎng)絡(luò)命令和監(jiān)控命令
- Linux學(xué)習(xí)資料下載(電子書(shū)籍)
- linux shell腳本基礎(chǔ)知識(shí)學(xué)習(xí)
- Linux學(xué)習(xí)基礎(chǔ)教程
- Linux命令學(xué)習(xí)總結(jié):詳解shutdown命令
- Linux命令學(xué)習(xí)總結(jié):詳解reboot命令
- Linux學(xué)習(xí)第一天——ssh登錄和軟件安裝詳解
- 個(gè)人學(xué)習(xí)Linux知識(shí)總結(jié)
- 快速自學(xué)Linux命令的4種方法