代码编织梦想

目录

流程控制之循环

一, 带列表的for循环语句

示例1:

示例2:

示例3:

示例4:

二,不带列表的for循环语句 

三, 类C风格的for循环语句

示例1:

示例2:

四,For 循环的嵌套

示例:

五, while循环语句

示例1:

示例2:

示例3:

六,while循环读取文件

七,until循环语句

示例:

八, select循环语句

示例:

九,利用break和continue语句控制循环

示例:


流程控制之循环

for循环是最简单,也是最常用的循环语句。与其他的程序设计语言一样,for循环都是初学者在学习循 环结构时的入门课程。for循环通常用于遍历整个对象或者数字列表。按照循环条件的不同,for循环语 句可以分为带列表的for循环、不带列表的for循环以及类C风格的for循环。

一, 带列表的for循环语句

带列表的for循环通常用于将一组语句执行已知的次数,其基本语法如下:

for variable in list

do

        statement1

        statement2

        ...

Done

示例1:

模拟音乐循环播放

1,使用命令  vim music_player.sh 打开脚本文件

[root@wangjingjing ~]# vim music_player.sh

2,按照要求编写脚本文件

(1)方法一

for song in song1 song2 song3 song4

do

    echo "current play $song"

    sleep 2

done

(2)方法二

for song in song{1..4}

do

    echo "current play $song"

    sleep 2

done

(3)方法三

for song in song{1,3,5,7}

do

    echo "current play $song"

    sleep 1

done

3,使用命令   bash music_player.sh  执行脚本文件,结果如下:

(1)方法一,二

[root@wangjingjing ~]# bash music_player.sh

current play song1

current play song2

current play song3

current play song4

(2)方法三

[root@wangjingjing ~]# bash music_player.sh

current play song1

current play song3

current play song5

current play song7

示例2:

测试主机192.168.206.131,132,133是否在线

方法一:

1,使用命令 vim ping_script.sh 打开脚本文件

[root@wangjingjing 0130]# vim ping_script.sh

2,按照要求编写脚本文件

#连续的变量用空格隔开

for ip in 192.168.206.131 192.168.106.132 192.168.206.133

do

#-c 2:发送2个数据包,并且不打印出来,写到/dev/null里面

    ping -c 2 $ip &>/dev/null

#如果状态码等于0,表示Ping通主机,显示host is online

    if [ "$?" -eq 0 ]

    then

        echo "host $ip is online"

#否则,输出host is offline

    else

        echo "host $ip is offline"

    fi 

done

3,使用命令  bash ping_script.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash ping_script.sh

host 192.168.206.131 is online

host 192.168.106.132 is offline

host 192.168.206.133 is online

方法二:

1,使用命令 vim ping_script.sh 打开脚本文件

[root@wangjingjing 0130]# vim ping_script.sh

2,按照要求编写脚本文件

for ip in 192.168.206.{131..133}

do

#-c 2:发送2个数据包,并且不打印出来,写到/dev/null里面

    ping -c 2 $ip &>/dev/null

#如果状态码等于0,表示Ping通主机,显示host is online

    if [ "$?" -eq 0 ]

    then

        echo "host $ip is online"

#否则,输出host is offline

    else

        echo "host $ip is offline"

    fi

done

3,使用命令  bash ping_script.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash ping_script.sh

host 192.168.206.131 is online

host 192.168.106.132 is offline

host 192.168.206.133 is online

方法三:

1,使用命令 vim ping_script.sh 打开脚本文件

[root@wangjingjing 0130]# vim ping_script.sh

2,按照要求编写脚本文件

#-f表示指定后面的格式,“%3g”中的3位宽度,%d打印浮点数,去掉多余0

for ip in `seq -f "192.168.206.%3g" 131 133`

do

#-c 2:发送2个数据包,并且不打印出来,写到/dev/null里面

    ping -c 2 $ip &>/dev/null

#如果状态码等于0,表示Ping通主机,显示host is online

    if [ "$?" -eq 0 ]

    then

        echo "host $ip is online"

#否则,输出host is offline

    else

        echo "host $ip is offline"

    fi

done

3,使用命令  bash ping_script.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash ping_script.sh

host 192.168.206.131 is online

host 192.168.206.132 is offline

host 192.168.206.133 is online

示例3:

打印:1-10之间的奇数-》 1,3,5,7,9

1,使用命令  vim num_script.sh 打开脚本文件

[root@wangjingjing ~]# vim num_script.sh

2,按照要求编写脚本文件

for i in {1..10..2}

do

    echo $i

done

3,使用命令   bash num_script.sh  执行脚本文件,结果如下:

[root@wangjingjing ~]# bash num_script.sh

1

3

5

7

9

示例4:

计算100以内的奇数和:

1,使用命令 vim num_script2.sh 打开脚本文件

[root@wangjingjing 0130]# vim num_script2.sh

2,按照要求编写脚本文件

sum=0

for i in {1..100..2}

do

#第一种方式

#    let sum+=i

#第二种方式

    ((sum+=i))

done

echo $sum

3,使用命令   bash num_script2.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash num_script2.sh

2500

二,不带列表的for循环语句 

       在某些特殊情况下,for循环的条件列表可以完全省略,称为不带列表的for循环语句。如果没有为for循 环提供条件列表,Shell将从命令行获取条件列表。不带列表的for循环语句的一般语法如下:

for variable

do

statement1

statement2

...

done

三, 类C风格的for循环语句

语法:

for((intialize;condition;operation))

do

 statement1

            ....

            statementN

Done

在上面的语法中,for循环语句的执行条件被2个圆括号包括起来。执行条件分为3个部分,由2个分号隔 开,第1部分expression1通常是条件变量初始化的语句;第2部分expression2是决定是否执行for循环 的条件。当expression2的值为0时,执行整个循环体;当expression2的值为非0时,退出for循环体。 第3部分,即表达式expression3通常用来改变条件变量的值,例如递增或者递减等。

示例1:

打印1-10

1,使用命令  vim cycle_ctl2.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_ctl2.sh

2,按照要求编写脚本文件

for ((i=1;i<11;i++))

do

    echo "$i"

done

3,使用命令 bash cycle_ctl2.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_ctl2.sh

1

2

3

4

5

6

7

8

9

10

示例2:

打印1-10里面的奇数

1,使用命令 vim cycle_ctl2.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_ctl2.sh

2,按照要求编写脚本文件

for ((i=1;i<11;i++))

do

    if (($i%2 != 0))

    then

        echo "$i"

    fi

done

3,使用命令 bash cycle_ctl2.sh 执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_ctl2.sh

1

3

5

7

9

四,For 循环的嵌套

示例:

打印10以内的奇数,以及10-20以内的奇数,20-30内的奇数

1,使用命令  vim nesting_for.sh 打开脚本文件

[root@wangjingjing 0130]# vim nesting_for.sh

2,按照要求编写脚本文件

#打印10以内的奇数,10-20以内的奇数,20-30以内的奇数

for i in 10 20 30

do

    for ((j=$i-9;j<$i;j++))

    do

        if (($j%2 != 0))

        then

            echo "$j"

        fi

    done

    echo "****************$i分割线***********"

done

3,使用命令  bash nesting_for.sh 执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash nesting_for.sh

1

3

5

7

9

****************10分割线***********

11

13

15

17

19

****************20分割线***********

21

23

25

27

29

****************30分割线***********

五, while循环语句

       while循环是另外一种常见的循环结构。使用while循环结构,可以使得用户重复执行一系列的操作,直 到某个条件的发生。这听起来好像跟until循环非常相似,但是与until语句相比,while语句有着较大的区别。

语法:

while expression

do

         statement1

done

示例1:

打印1-10

1,使用命令  vim cycle_while.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_while.sh

2,按照要求编写脚本文件

i=1

while (($i<11))

do

    echo "$i"

    let i+=1

done

 

3,使用命令   bash cycle_while.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_while.sh

1

2

3

4

5

6

7

8

9

10

示例2:

打印1-10内的奇数

1,使用命令  vim cycle_while.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_while.sh

2,按照要求编写脚本文件

i=1

while (($i<11))

do

    if (($i%2 != 0))

    then

        echo "$i"

    fi 

    let i+=1

done

3,使用命令  bash cycle_while.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_while.sh

1

3

5

7

9

示例3:

打印10以内的奇数,以及10-20以内的奇数,20-30内的奇数?

1,使用命令  vim cycle_while.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_while.sh

2,按照要求编写脚本文件

i=10

while (($i<31))

do

    let j=$i-9

    while ((j<=i))

    do

          if (($j%2 != 0))

        then

            echo "$j"

        fi

        let j++

    done

    echo "---------------$i的分界线---------------"

    let i+=10

done

 3,使用命令  bash cycle_while.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_while.sh

1

3

5

7

9

---------------10的分界线---------------

11

13

15

17

19

---------------20的分界线---------------

21

23

25

27

29

---------------30的分界线---------------

六,while循环读取文件

Read    每次读取一行

1,使用命令  vim while.txt 打开需要读取文件

[root@wangjingjing 0130]# vim while.txt

2,编写需要读取的文件内容

welcome to my world

you can do everything you want to do !

3,使用命令  vim while_read_file.sh 打开脚本文件

[root@wangjingjing 0130]# vim while_read_file.sh

4,按照要求编写脚本文件

(1)方法一

#使用命令read 读取文件内容

while read line

do

    echo "$line"

#把while.txt重定向给while循环;此处都在一个目录下,没有用绝对路径

done < while.txt

(2)方法二:

#把文件重定向给exec

exec < while.txt

#使用命令read 读取文件内容

while read line

do

    echo "$line"

done

5,使用命令   bash while_read_file.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash while_read_file.sh

welcome to my world

you can do everything you want to

七,until循环语句

        until循环语句同样也存在于多种程序设计语言中。顾名思义,until语句的作用是将循环体重复执行,直到某个条件成立为止。until语句的基本语法如下:

until expression

do

        statement1

        statement2

        ...

done

示例:

打印1-10

1,使用命令  vim cycle_until.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_until.sh

2,按照要求编写脚本文件

i=1

until ((i>11))

do

    echo "$i"

    let i+=1

done

3,使用命令  bash cycle_until.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_until.sh

1

2

3

4

5

6

7

8

9

10

八, select循环语句

        select循环语句的主要功能是创建菜单,在执行带有select循环语句脚本时,输出会按照数字顺序的列表 显示一个菜单,并显示提示符(默认是#?),同时等待用户输入数字选择。select语句的基本语法如 下:

select 变量名 [ in 菜单值列表 ]

do

        statement1

        statement2

        ...

done

示例:

模拟选择玩家

1,使用命令  vim cycle_select.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_select.sh

2,按照要求编写脚本文件

select op in players1 players2

do

    echo "$op"

done

~     

3,使用命令  bash cycle_select.sh  执行脚本文件,结果如下:

输入1,显示players1;输入2,显示players2;ctrl + c 退出;

[root@wangjingjing 0130]# bash cycle_select.sh

1) players1

2) players2

#? 1

players1

#? 2

players2

#? ^C

九,利用break和continue语句控制循环

在Shell中的循环结构中,还有2个语句非常有用,即break和continue语句。前者用于立即从循环中退出;而后者则用来跳过循环体中的某些语句,继续执行下一次循环。

break语句的作用是立即跳出某个循环结构。break语句可以用在for、while或者until等循环语句的循环体中。

continue语句则比较有趣,它的作用不是退出循环体。而是跳过当前循环体中该语句后面的语句,重新从循环语句开始的位置执行。

示例:

同一段代码分别用break和continue控制循环的不同效果

break:

1,使用命令  vim cycle_break.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_break.sh

2,按照要求编写脚本文件

for i in {1..10}

do

   

    if [ $i -eq 5 ]

    then

        break

    fi

    echo "$i"

done

3,使用命令  bash cycle_break.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_break.sh

1

2

3

4

 

Continue:

1,使用命令  vim cycle_continue.sh 打开脚本文件

[root@wangjingjing 0130]# vim cycle_continue.sh

2,按照要求编写脚本文件

for i in {1..10}

do

   

    if [ $i -eq 5 ]

    then

        continue

    fi

    echo "$i"

done

3,使用命令  bash cycle_continue.sh  执行脚本文件,结果如下:

[root@wangjingjing 0130]# bash cycle_continue.sh

1

2

3

4

6

7

8

9

10

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_48814356/article/details/128858915

shell-流程控制案例_墨玉浮白的博客-爱代码爱编程_shell 计数器 循环遍历文件每一行,通过流程控制语句实现如下功能:

复习shell流程控制语句! 循环遍历文件每一行:流程控制语句 定义一个计数器num打印num正好是文件行数 定义文件: aaa 111 bbb 222 ccc 333 1.增强for循环的方式实现: #!

Shell编程高级篇之流程控制-for循环、脚本案例-爱代码爱编程

请坐! for循环for循环脚本for循环-实现1-100的累加for循环-利用数组求最大值for循环-实现9x9乘法表 for循环 for循环是固定循环,循环次数是有限的次数,也叫计数循环。语法一: for 变量 in 值1 值2 值3 …… #依次把值1、值2....带入到变量中 do #把变量带进程序中运行 程序 done

Shell编程高级篇之流程控制-while循环以及脚本案例、until循环-爱代码爱编程

while循环 只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。 语法格式: while [ 条件判断式 ] do 程序 done while实现无限循环 while true do 程序 done while循环-实现1-100的累加 也可以用for循环来实现 i=1 sum=0 while [ $i -l

shell for循环命令行_Shell 流程控制-爱代码爱编程

Shell 流程控制 Linux 基础_JAVA-创客学院​www.makeru.com.cn 物联网开发入门直播课 - 嵌入式/物联网-快速上手linux - 创客学院直播室​www.makeru.com.cn 嵌入式应用层开发 - 1小时全面认识Linux网络经典案例 - 创客学院直播室​www.makeru.com.cn 嵌入式底层开

shell流程控制之for循环-爱代码爱编程

循环 for循环: 在编程语言中,我们会涉及许多重复使用的代码块,为了简化代码,方便使用,就会使用循环语句来实现,重复代码的调用。 shell中for循环有三种使用方法: (1)带列表的for循环 (2)不带列表的for循环 (3)类似C风格的for循环 1.带列表的for循环 **使用范围:**通常用于已知循环次数的for循环:其语法是:

shell嵌套循环经典案例-爱代码爱编程

嵌套循环 在众多的程序设计语言,嵌套循环是一种常见的结构,通过嵌套循环,可以完成更复杂的功能。 案例一1.打印九九乘法表 [root@bogon ~]# vim chengfabiao.sh #! /bin/bash for i in `seq 9` do for j in `seq 9` do

shell脚本循环控制语句-爱代码爱编程

循环控制语句 在shell程序设计语句中,有两个语句来控制循环的退出,分别是continue语句和break语句,前者用来跳过循环体当中的某些语句,继续下一次循环;后者表示立即退出循环。 (1)continue语句:其作用是立即跳出某个循环结构;break语句常用于for、while、或者是until等循环结构中。 (2)break语句:其作用是用

shell脚本——for循环语句(包含应用案例)-爱代码爱编程

for循环语句 for循环语法结构列表循环不带列表循环实例类C风格的for循环循环控制语句应用案例九九乘法表直角三角形等腰三角形倒等腰三角形菱形空心三角形空心菱形脚本计算1-100奇数和判断所输整数是否为质数批量创建用户测试网段存活主机 for循环语法结构 列表循环 列表for循环:用于将一组命令执行已知的次数 基本语法结构

Shell编程之循环语句实例-爱代码爱编程

文章目录 Shell编程之循环语句实例循环语句for循环语句while循环语句until循环语句循环的嵌套for循环的嵌套while的嵌套输出指定图形 Shell编程之循环语句实例 循环语句 for循环语句 读取不同的变量值,用来逐个执行同一组命令 for 变量名 in 取值列表 //连续范围取值可以{1..3} {1 2 3 }

Shell 脚本学习笔记(三)——Shell 流程控制-爱代码爱编程

你我皆是凡人,都在柴米油盐的琐碎中度日,也都在未知彷徨中向前。前路漫漫,起伏难料,我们要做的,就是时刻让心里充满阳光,认真生活。 本篇文章主要整理了Shell中常用的流程控制。 文章目录 1. if else2. case ... esac3. for 循环4. while 1. if else 记住记住,如果else分支没有语句执

【linux】shell 编程之流程控制语句详解_逆风飞翔的小叔的博客-爱代码爱编程

前言 可以说,在任何一门编程语言中都离不开流程控制语句,使用流程控制语句可以帮助程序处理各类复杂的操作,常用的流程控制语句,比如: if-else,while,for循环等,在linux 的shell 编程语法中,也提供了丰富的流程控制语句,接下来将一一做详细的说明。 一、if - else 语句 if 语法 if 条件 then

shell脚本之while、until循环以及循环控制语句_shell脚本死循环while循环实例-爱代码爱编程

目录 一、while循环语句 1.1.语法结构 1.2.while死循环  二、until循环 三、循环控制语句  3.1.continue 3.2.break 3.3.exit 四、总结 一、while循环语句 1.1.语法结构 (1)格式 while 表达式 do command done (2)案

【shell 脚本速成】08、shell 流程控制——for 循环语句_for 循环跳到root执行命令-爱代码爱编程

目录 一、循环语句-for 1.1 for 介绍 1.2 for基本语法 1.3 for 条件应用  1.4 for C 格式语法 二、练习案例           工作中总是有很多工作需要重复性来完成,比如每天都需要执行一次备份、每天都需要分析一次业务的access.log日志,每分钟都需要监测一次主机的状态等等工作,这些重复性的

【shell 脚本速成】10、shell 流程控制 while 循环_shell while-爱代码爱编程

目录 一、while 介绍 1.1 while 语法 二、while 与 shell 运算 2.1 比较运算 2.2 逻辑运算 2.3 文件类型判断 2.4 特殊条件 三、while 与循环控制语句 3.1 sleep 语句 3.2 break 3.3 continue 四、while 嵌套其他语句 4.1 while 嵌套 if