日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell脚本中循环语句for,while,until用法

發布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本中循环语句for,while,until用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

循環語句:

BashShell中主要提供了三種循環方式:forwhileuntil

一、for循環

??for循環的運作方式,是講串行的元素意義取出,依序放入指定的變量中,然后重復執行含括的命令區域(在dodone 之間),直到所有元素取盡為止。

? 其中,串行是一些字符串的組合,彼此用$IFS所定義的分隔符(如空格符)隔開,這些字符串稱為字段。

for的語法結構如下:

?

1.for?變量?in?串行

2.do

3.執行命令

4.done

說明:

?1,講串行中的字段迭代放入變量中

?2-4,接著將重復執行dodone之間的命令區域,直到串行中每一個字段軍處理過為止。

流程圖:

用例1

?for循環在家目錄下創建aaa1-aaa10,然后在aaa1-aaa10創建bbb1-bbb10的目錄

?

01.#!/bin/bash

02.for?k?in?$(?seq?1 10 )

03.do

04.mkdir?/home/kuangl/aaa${k}

05.cd?/home/kuangl/aaa${k}

06.for?l?in?$(?seq?1 10 )

07.do

08.mkdir?bbb${l}

09.cd?/home/kuangl/aaa${k}

10.done

11.cd?..

12.done

說明:

?2seq 用于產生從某個數到另外一個數之間的所有整數。

?4,在家目錄下創建文件夾。

?6,在使用一個for循環創建文件夾

測試結果:

01.[root@test01kuangl]# ll

02.total 80

03.drwxr-xr-x 12root?? root?? 4096 Jul 20 01:23 aaa1

04.drwxr-xr-x12 root?? root?? 4096 Jul 20 01:23 aaa10

05.drwxr-xr-x 12root?? root?? 4096 Jul 20 01:23 aaa2

06.drwxr-xr-x12 root?? root?? 4096 Jul 20 01:23 aaa3

07.drwxr-xr-x 12root?? root?? 4096 Jul 20 01:23 aaa4

08.drwxr-xr-x12 root?? root?? 4096 Jul 20 01:23 aaa5

09.drwxr-xr-x 12root?? root?? 4096 Jul 20 01:23 aaa6

10.drwxr-xr-x12 root?? root?? 4096 Jul 20 01:23 aaa7

11.drwxr-xr-x 12root?? root?? 4096 Jul 20 01:23 aaa8

12.drwxr-xr-x12 root?? root?? 4096 Jul 20 01:23 aaa9

13.[root@test01kuangl]# cd? aaa1

14.[root@test01aaa1]# ll

15.total 40

16.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb1

17.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb10

18.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb2

19.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb3

20.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb4

21.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb5

22.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb6

23.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb7

24.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb8

25.drwxr-xr-x 2root root 4096 Jul 20 01:23 bbb9

用例2

?列出var目錄下各子目錄占用磁盤空間的大小。

?

1.#!/bin/bash

2.DIR="/var"

3.cd?$DIR

4.for?k?in?$(ls?$DIR)

5.do

6.[ -d $k ]&&?du?-sh $k

7.done

說明:

?4,對/var目錄中每一個文件,進行for循環處理。

?6,如果/var下的文件是目錄,則使用du -sh計算該目錄占用磁盤空間的大小。

測試結果:

?

01.[root@test01scripts]# ./var.sh

02.276M???cache

03.4.0K???cvs

04.84K db

05.8.0K???empty

06.4.0K????ftp

07.4.0K???games

08.4.0K???gdm

09.21G lib

10.4.0K????local

11.16K lock

12.7.4G???log

13.4.0K???logs

14.0??mail

15.4.0K???nis

16.4.0K???opt

17.4.0K???preserve

18.336K???run

19.3.7G???spool

20.212K???tmp

21.4.1G???www

22.4.0K???yp

二、while循環

while循環的語法:

?

1.while?條件測試

2.do

3.執行命令

4.done

說明:

?1,首先進行條件測試,如果傳回值為0(條件測試為真),則進入循環,執行命令區域,否則

不進入循環,介紹while 命令

?3,執行命令區域,這些命令中,應該要有改變條件測試的命令,這樣,才有機會在

有限步驟后結束執行while循環(除非想要執行無窮循環)。

?4,回到行1,執行while命令

流程圖

用例1

?while循環,經典的用法是搭配轉向輸入,讀取文件的內容,做法如下:

?

1.#!/bin/bash

2.while?read?kuangl

3.do

4.echo?${kuangl}

5.done?</home/kuangl/scripts/testfile

說明:

?2,使用read有標準輸入讀取數據,放入變量kuangl中,如果讀到的數據非空,就進入循環。

?4,把改行數據顯示出來

?5,將/home/kuangl/scripts/testfile的內容轉向輸入將給read讀取。

測試結果:

?

1.[root@test01scripts]# ./while_test01.sh

2.aaaaaaa

3.bbbbbbb

用例2

?

01.#!/bin/bash

02.declare?-i i=1

03.declare?-i?sum=0

04.while?((i<=10))

05.do

06.let?sum+=i

07.let?++i

08.done

09.echo?$sum

說明:

?2-3,聲明isum為整數型

?4,如果條件測試:只要i值小于或者等于10,就執行循環。

?6sum+=isum=sum+i是一樣的,sum累加上i

?7i的值遞增1,此行是改變條件測試的命令,一旦i大于10,可終止循環。

?8,遇到done,回到行6去執行條件測試

?9,顯示sum的值為55

測試結果:

1.[root@test01scripts]# ./while_02.sh

2.55

三、until循環

while循環的條件測試是測真值,until循環則是測假值。

until循環的語法:

?

1.until?條件測試

2.do

3.執行命令

4.done

說明:

?1,如果條件測試結果為假(傳回值不為0),就進入循環。

?3,執行命令區域。這些命令中,應該有改變條件測試的命令,這樣子,才有機會在有限步驟后結束執行until循環(除非你想要執行無窮循環)。

?4,回到行1,執行until命令。

流程圖:

用例1

?

01.#!/bin/bash

02.declare?-i i=10

03.declare?-i?sum=0

04.until?((i>10))

05.do

06.let?sum+=i

07.let?++i

08.done

09.echo?$sum

說明:

?2-3,聲明isum為整數型

?4,如果條件測試:只要i值未超過10,就進入循環。

?6sum+=isum=sum+i是一樣的,sum累加上i

?7i的值遞增1,此行是改變條件測試的命令,一旦i大于10,可終止循環。

?8,遇到done,回到行6去執行條件測試

?9,顯示sum的值為10

測試結果:

?

1.[root@test01scripts]# ./until_test01.sh

2.10

?


轉載于:https://blog.51cto.com/520tom/1629960

總結

以上是生活随笔為你收集整理的Shell脚本中循环语句for,while,until用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。