Shell腳本編程之循環(for、while、until)

Shell腳本編程之循環(for、while、until)

 

一、循環語句的對比:

for語句

while語句

until語句

執行機制:

依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束

CONDITION:循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再次做判斷;條件為“true”,則執行一次循環;直到條件測試狀態為“false”終止循環

使用格式:

for $name in 列表 ;do

循環體

done

while CONDITION; do

循環體

done

until CONDITION; do

循環體

done

循環條件:

注:for的循環是有列表控制。

(1) 直接給出列表

(2) 整數列表:

(a) {start..end}

(b) $(seq[start [step]] end)

(3) 返回列表的命令

$(COMMAND)

(4) 使用glob,如:*.sh

(5) 變量引用;

$@, $*

CONDTION一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正。

進入條件:CONDITIONtrue

退出條件:CONDITIONfalse

進入條件:CONDITION false

退出條件:CONDITION true

循環控制語句:

(用于循環體中)

1、cotinue: continue   [N]:提前結束第#層的本輪循環,而直接進入下一輪判斷;最內層為第1層。

2、使用格式:

while CONDTIITON1; do

CMD1…

if CONDITION2; then

continue

fi

CMD#

done

1break: break [N]:提前結束第#層循環,最內層為第1層。

2、使用格式:

while CONDTIITON1; do

CMD1

if CONDITION2; then

break

fi

CMD#

done

無限循環創建:

1、while true; do

循環體

done

until false; do

循環體

done

For語句:

1、判斷/var/目錄下所有文件的類型

腳本代碼:

blob.png

腳本執行結果:

blob.png

blob.png

2、添加10個用戶user1-user10,密碼同用戶名

腳本代碼:

blob.png

腳本執行效果:

blob.png

3、/etc/rc.d/rc3.d目錄下分別有多個以K開頭和以S開頭的文件;分別讀取每個文件,以K開頭的文件輸出為文件加stop,以S開頭的文件輸出為文件名加start;如:“K34filename stop”;“S66filename start”

腳本代碼:

blob.png

腳本執行效果:

blob.png

4、寫一個腳本,提示輸入正整數n的值,計算1+2+3+…n的總和

腳本代碼:

blob.png

腳本執行效果:

blob.png

5、寫一個腳本,提示請輸入網絡地址,如192.168.0.0,判斷輸入的網段中主機在線狀態

腳本代碼:

blob.png

腳本執行效果:

blob.png

6、打印九九乘法表

腳本代碼:

blob.png

腳本執行效果: 

blob.png 

While語句:

1、求100以內所有正整數之和

腳本代碼:

blob.png

腳本執行效果:

blob.png

2、通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。

腳本代碼:

blob.png

腳本執行效果:

blob.png

3、打印九九乘法表

腳本代碼:

blob.png

腳本執行效果:

blob.png

4、利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者和最小者

腳本代碼:

blob.png

腳本執行效果:

blob.png

5、打印國際象棋棋盤

腳本代碼:

blob.png

腳本執行效果:

blob.png

 

until語句:

1、每隔3秒鐘到系統上獲取已經登錄的用戶的信息;如果發現用戶hacker登錄,則將登錄時間和主機記錄于日志/var/log/login.log,并提示該用戶退出系統。

腳本代碼:

blob.png

腳本執行效果:

blob.png

2、隨機生成10以內的數字,實現猜字游戲,提示比較大或小,相等則退出

腳本代碼:

blob.png

腳本執行效果:

blob.png

3、編寫腳本,求100以內所有正整數之和

腳本代碼:

blob.png

腳本執行效果:

blob.png

4、編寫腳本,通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。

腳本代碼:

blob.png

腳本執行效果:

blob.png

5、編寫腳本,打印九九乘法表

腳本代碼:

blob.png

腳本執行效果:

blob.png

6、編寫腳本,利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者和最小者

腳本代碼:

blob.png

腳本執行效果:

blob.png

7、編寫腳本,實現打印國際象棋棋盤

腳本代碼:

blob.png

腳本執行效果:

blob.png

8、打印等腰三角形

腳本代碼:

blob.png

腳本執行效果:

blob.png

9、安裝centos6.7,centos6.8kernel升級

掛載CentOS6.8的光盤到CentOS6.7上,將kernel-2.6.32.642版本拷貝到CentOS6.7的目錄上:

blob.png

安裝kernel-2.6.32.642

blob.png

重啟后可以看到該界面:(如果是最小化安裝的CentOS,在開機時需要按

blob.png

機器重啟完成后,如下圖:

blob.png

blob.png

原創文章,作者:Aaron_wang,如若轉載,請注明出處:http://www.www58058.com/37033

(0)
Aaron_wangAaron_wang
上一篇 2016-08-18
下一篇 2016-08-18

相關推薦

  • 走入系統命令

    一、inode節點號         在linux中,每一個文件都有唯一的inode號,inode號也是系統識別的唯一編碼,而文件名僅僅是為了使用者區分辨認, inode (index node )表中包含文件系統所有文件列表 一個節點(索引節點)是在一個表項,包含有關…

    2017-05-25
  • 運維工程師技能需求排行

    這是我今天在拉勾網搜索運維,翻完了4四頁也招聘信息之后得到的,我的目的是想要看看之后的學習,哪個更應該成為重點,有些在我意料之中,有些還真的沒想到,算是努力了一個小時的收獲吧,分享給大家。
    注意:其中的看法僅代表個人觀點,很多都是依靠我自己的學習經驗和工作經驗累積的

    Linux干貨 2017-12-12
  • 循環體

    for 變量名in 列表;do 循環體 done ?執行機制: 依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束 列表生成方式: (1) 直接給出列表 (2) 整數列表: (a) {start..end} (b) $(seq[start [step]] end) (3) 返回列表的命令  &nbsp…

    Linux干貨 2016-08-21
  • 第十二周:httpd和lamp

    看了一下作業內容,發現所有的都在51cto上寫過了。這里就不在做了。 畢竟當時幾篇博客寫下來,還是非常繁瑣的,不想在寫。 文檔地址:RHEL6.8編譯安裝LAMP環境:httpd-2.4+mysql5.6+php5.5;基于LAMP環境部署WordPress: http://afterdawn.blog.51cto.com/7503144/1876171 配…

    Linux干貨 2016-12-09
  • Linux中的文本處理工具—sed

    sed 處理文本工具 一、概述   Stream EDitor,行編輯器    sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文…

    Linux干貨 2016-08-10
欧美性久久久久