22.shell语言之for循环while循环until循环exitbreakcontinue语句

Posted 小鹏linux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了22.shell语言之for循环while循环until循环exitbreakcontinue语句相关的知识,希望对你有一定的参考价值。

📋 个人简介
💖 作者简介:大家好,我是小鹏linux,运维领域新星创作者。😜
📝 个人主页:小鹏linux🔥
🎉 支持我:点赞👍+收藏⭐️+留言📝
💬格言:你未必出类拔萃,但一定与众不同!🔥
📕 系列专栏:
               🍎 阶段一:windows基础                        目前原创16篇
               🍎 阶段二:Linux基础知识                      目前原创38篇
               🍎 阶段三:shell基础+shell高级              目前原创22篇
               🍎 阶段四:python基础及自动化应用      原创未开始
               🍎 阶段五:Linux网络服务                       原创未开始
               🍎 阶段六:集群原理及架构                     原创未开始
               🍎 阶段七:云计算虚拟化技术                 原创未开始

目录

1.for循环语句 

1.1带列表循环 

1.2类C的for循环 

1.3举例:批量解压缩 

1.4举例:从1加到100 

1.5举例:批量添加指定数量的用户 

1.6举例:批量删除用户 

2.while循环语句 

2.1举例:从1加到100  

2.2while的另一种格式,死循环

2.3举例:循环监测apache

3.until循环 

4.exit语句

5.break语句 

5.1举例:break语句

6.continue语句 


1.for循环语句 

1.1带列表循环 

for  变量  in  值1  值2  值3 .....

    do

        程序

done

1.2类C的for循环 

for ((初始值;循环控制条件;变量变化))

    do

        程序

done

1.3举例:批量解压缩 

[root@xiaopeng ~]# cat auto-tar.sh

#!/bin/bash

cd /lamp

ls *.tar.gz > ls.log

for  i  in  $(cat ls.log)

    do

        tar -xvf $i &> /dev/null

done

        rm -rf /lamp/ls.log

脚本编写完成后,给脚本执行权限。光盘换成lamp,创建/lamp,把lamp中的内容 复制到/lamp中。  

1.4举例:从1加到100 

[root@xiaopeng ~]# cat for-1-100.sh

#!/bin/bash

s=0

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

    do

        s=$(($s+$i))

done

        echo "$s"

1.5举例:批量添加指定数量的用户 

[root@xiaopeng ~]# cat useradd.sh

#!/bin/bash

# 批量添加指定数量的用户

# 创建用户默认名

# 创建默认密码。

read -p "Please input user name:" -t 30 name

read -p "Please input the number of users:" -t 30 num

read -p "Please input the password of users:" -t 30 pass

if  [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]

    then

        y=$(echo $num | sed 's/[0-9]//g')if [ -z "$y"]

    then

        for (( i=1;i<=$num;i=i+1))

            do

                /usr/sbin/useradd $name$i &> /dev/null

                echo $pass | /usr/bin/passwd --stdin $name$i &> /dev/null

            done

        fi

fi

1.6举例:批量删除用户 

[root@xiaopeng ~]# cat userdel.sh

#!/bin/bash

ls /home/ > /tmp/user.txt

user=$(cat /tmp/user.txt)

for  i  in  $user

    do

        userdel -r $i

done

        rm -rf /tmp/user.txt

2.while循环语句 

对while循环来讲,只要条件判断式成立,循环就会一直继续,直到条件判断式不成立循环才会停止。

while  [  条件判断式  ]

    do

        程序

done

2.1举例:从1加到100  

[root@xiaopengt ~]# cat while.sh#!/bin/bash

i=1

s=0

while  [  $i -le 100  ]

    do

        s=$(( $s+$i))

        i=$(( $i+1))

done

        echo "the sum si:$s"

2.2while另一种格式,死循环

while true

    do

        command

done

2.3举例:循环监测apache

[root@xiaopeng ~]# cat autostart.sh

#!/bin/bash

while true

do

port=$(nmap -sT 192.168.22.222 | grep tcp | grep http | awk 'print $2')

if  [  "$port"  ==  "open"  ]

    then

        echo "$(date) httpd is ok!" >> /tmp/autostart-acc.log

    else

        /etc/rc.d/init.d/httpd start &> /dev/null

        echo "$(date) restart httpd!!" >> /tmp/autostart-err.log

fi

        sleep 5 #检测的间隔时间为5秒。

done

3.until循环 

until循环和while循环相反

4.exit语句

遇到exit语句的时候脚本直接结束。

1)系统是有exit命令的,用于退出当前用户的登录状态

2)在shell脚本中,exit语句是用来退出当前脚本的。也就是说在shell脚本中, 只要碰到exit语句,后续的程序就不再执行,而直接退出脚本。

exit语法:

exit [返回值]

#返回值可以通过$?来查看返回值,范围是0-255。如果exit之后没有定义返回值,脚 本执行之后的返回值是执行exit之前,最后执行一条命令的返回值

5.break语句 

遇到break语句的时候循环从当前终止,但不影响脚本内其他语句

5.1举例:break语句

[root@xiaopeng ~]# cat break.sh

#!/bin/bash

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

    do

        if  [  "$i" -eq 4  ]

            then

            break

        fi

        echo $i

done

[root@xiaopeng ~]# . break.sh

1

2

3

[root@xiaopeng ~]#

6.continue语句 

遇到break语句的时候结束当前循环,但是下一次循环照常运行

continue只会退出当次循环,所以并不影响后续的循环,结果就是只会少4的输出

喜欢的请来个三连支持一下吧,谢谢谢谢!!!

您的支持是我最大的动力!!!

以上是关于22.shell语言之for循环while循环until循环exitbreakcontinue语句的主要内容,如果未能解决你的问题,请参考以下文章

C语言中CRC循环校验的一个程序

shell 脚本之循环使用 for while 详解

Shell循环之for,while,until

c语言学习笔记_3

scala快速入门之基础篇-循环语法

Java循环语句之 for