linux Shell學習筆記第四天

來源:互聯網
上載者:User

本節課的指令碼也同樣共用在share中了。

第四天:迴圈結構

內容大綱:

應用執行個體分析

for迴圈

while迴圈

for迴圈的原理

達到效果

根據昨天的菜單修改。 選擇1、2、3後還會提示是否繼續選擇的功能。選擇4仍然是退出操作。

for variable in list list 變數列表池

do

command1

command2

done

執行個體一

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

當後面沒有,即等於0,則停止迴圈。

執行個體二

var.txt 為了證明變數是斷行符號或者空格分隔,除非雙引號專門分隔

1 22

3

4

5

6

forfile.sh

#!/bin/bash

for loop in `cat var.txt`

do

echo ${loop}

done


執行個體三

編寫一個指令碼自動產生一個C類IP位址區段

IP位址區段網路部分由使用者指定

./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 產生步進為1,即1-254的值

do

echo ${1}.${ip}

done



for迴圈嵌套

for 變數名1 in 列表1

do

for 變數名2 in 列表2

do

命令1

done

done

執行個體四

編寫一個指令碼自動產生一個C類IP位址區段

IP位址區段網路部分由使用者指定,主機結束部分由使用者指定

./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迴圈的原理


界限測試=條件測試

真假測試。

如果一直為真的話則不會停止, 死迴圈。

while的格式

while 條件

do

命令1

命令2

done

while的應用情境

while死迴圈

while [ "1" == "1" ]

do


done

while條件迴圈

while [ ${num} –lt 10] 小於10一直迴圈

do


done

解決問題。

使用while來產生一個死迴圈

通過exit來退出整個指令碼

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


課後練習

編寫一個指令碼,產生一個二級的菜單。

第一級有三個功能項:cpu info , memory info ,exit

cpu info 第二級中有四個功能項:分別是顯示cpu的類型,顯示cpu的負載,返回主菜單,退出指令碼

memory第二級中有四個功能項:分別是顯示記憶體剩餘量,swap的剩餘量,返回主菜單,退出指令碼。

總結回顧

for迴圈的特性

他和c語言和java不一樣,不是根據判斷語句去控制次數

for實現死迴圈很難。while做死迴圈很簡單。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.