0


22.shell语言之for循环、while循环、until循环、exit、break、continue语句

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

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的输出。

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

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

标签: bash linux 运维

本文转载自: https://blog.csdn.net/weixin_46659843/article/details/124163674
版权归原作者 小鹏linux 所有, 如有侵权,请联系我们删除。

“22.shell语言之for循环、while循环、until循环、exit、break、continue语句”的评论:

还没有评论