20.10 for循环 20.11/20.12 while循环 20.13 break跳出循环 20.14 continue结束本次循环 20.15 exit退出整个脚本

本文介绍了Shell脚本中for循环、while循环的基本语法与使用案例,包括如何进行条件判断、如何利用break和continue控制循环流程,以及如何通过exit退出整个脚本。
20.10 for循环
20.11/20.12 while循环
20.13 break跳出循环
20.14 continue结束本次循环

20.15 exit退出整个脚本


for循环

格式:

for  变量名  in 条件

do

command

done

示例:把1-5的数字相加

#!/bin/bash
number=0                ---设置number变量=0
for i in `seq 1 5`            ---设置i变量序列为1-5
do    
          number=$[$number+$i]        --再次让number赋值等于  number+i的值
done
echo $number                    显示总数


下图是执行过程



示例:用在查找目录

#!/bin/bash
cd /etc/                --进入到目录

for a in `ls /etc/`            --设置变量a为 ls /etc/

do
   if [ -d $a ]            判断如果$a目录存在的话
then
   ls -d $a                ---显示出来
   fi

done

执行过程:



while循环

语法格式

while  条件;

do

command

done

示例;查看系统负载

#!/bin/bash
while :
do
    load=`w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1`        --设置变量load
    if [ $load -gt 10 ]                            --如果负载大于0
    then
        /usr/bin/sbin/mail.py xxx@qq.com "$load" "报警“     --发送邮件给用户(这里可以自己写一个发送邮件脚本)
    fi
    sleep 30                        --30秒后再次检查

done


关于load的变量分步解释:

w --查看负载


head -1    ---显示第一行


w|head -1|awk -F 'load average: ' '{print $2}'    ---load作分割 打印第二行         (即load为第一行)


w|head -1|awk -F 'load average: ' '{print $2}'|cut -d. -f1   --以.(点)作分割,分割第一段



break跳出循环

#!/bin/bash
for i in `seq 1 4`            --变量
do
echo $i
if [ $i -eq 3 ]                    --当i等于3
then
    break                        --跳出循环
fi
done
echo abcs        

执行过程:可以看到当i=3就跳出以下循环,直接运abc结束



continue结束本次循环

#!/bin/bash
for i in `seq 1 4`
do
echo $i
if [ $i -eq 3 ]
then
continue
fi
echo $i
done

echo abcs

执行过程:可以看到一个3,就没了。continue仅仅跳出本次循环,继续下一次循环



exit退出整个脚本

exit直接退出整个脚本

#!/bin/bash
for i in `seq 1 5`
do
    echo $i
    if [ $i == 3 ]
    then
        exit
    fi
    echo $i
done

echo aaaaaaa

执行过程:当i=3 直接退出脚本


Error: Package: 2:nodejs-20.19.6-1nodesource.x86_64 (nodesource-nodejs) Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit) Error: Package: 2:nodejs-20.19.6-1nodesource.x86_64 (nodesource-nodejs) Requires: glibc >= 2.28 Installed: glibc-2.17-326.el7_9.3.x86_64 (@updates) glibc = 2.17-326.el7_9.3 Available: glibc-2.17-317.el7.i686 (base) glibc = 2.17-317.el7 Available: glibc-2.17-322.el7_9.i686 (updates) glibc = 2.17-322.el7_9 Available: glibc-2.17-323.el7_9.i686 (updates) glibc = 2.17-323.el7_9 Available: glibc-2.17-324.el7_9.i686 (updates) glibc = 2.17-324.el7_9 Available: glibc-2.17-325.el7_9.i686 (updates) glibc = 2.17-325.el7_9 Available: glibc-2.17-326.el7_9.i686 (updates) glibc = 2.17-326.el7_9 Error: Package: 1:npm-8.19.4-1.16.20.2.1.el7.x86_64 (epel) Requires: nodejs = 1:16.20.2-1.el7 Available: 1:nodejs-16.20.2-1.el7.x86_64 (epel) nodejs = 1:16.20.2-1.el7 Available: 2:nodejs-20.0.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.0.0-1nodesource Available: 2:nodejs-20.1.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.1.0-1nodesource Available: 2:nodejs-20.2.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.2.0-1nodesource Available: 2:nodejs-20.3.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.3.1-1nodesource Available: 2:nodejs-20.4.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.4.0-1nodesource Available: 2:nodejs-20.5.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.5.0-1nodesource Available: 2:nodejs-20.5.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.5.1-1nodesource Available: 2:nodejs-20.6.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.6.0-1nodesource Available: 2:nodejs-20.6.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.6.1-1nodesource Available: 2:nodejs-20.7.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.7.0-1nodesource Available: 2:nodejs-20.8.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.8.0-1nodesource Available: 2:nodejs-20.8.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.8.1-1nodesource Available: 2:nodejs-20.9.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.9.0-1nodesource Available: 2:nodejs-20.10.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.10.0-1nodesource Available: 2:nodejs-20.11.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.11.0-1nodesource Available: 2:nodejs-20.11.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.11.1-1nodesource Available: 2:nodejs-20.12.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.12.0-1nodesource Available: 2:nodejs-20.12.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.12.1-1nodesource Available: 2:nodejs-20.12.2-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.12.2-1nodesource Available: 2:nodejs-20.13.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.13.0-1nodesource Available: 2:nodejs-20.13.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.13.1-1nodesource Available: 2:nodejs-20.14.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.14.0-1nodesource Available: 2:nodejs-20.15.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.15.0-1nodesource Available: 2:nodejs-20.15.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.15.1-1nodesource Available: 2:nodejs-20.16.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.16.0-1nodesource Available: 2:nodejs-20.17.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.17.0-1nodesource Available: 2:nodejs-20.18.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.18.0-1nodesource Available: 2:nodejs-20.18.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.18.1-1nodesource Available: 2:nodejs-20.18.2-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.18.2-1nodesource Available: 2:nodejs-20.18.3-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.18.3-1nodesource Available: 2:nodejs-20.19.0-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.0-1nodesource Available: 2:nodejs-20.19.1-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.1-1nodesource Available: 2:nodejs-20.19.2-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.2-1nodesource Available: 2:nodejs-20.19.3-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.3-1nodesource Available: 2:nodejs-20.19.4-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.4-1nodesource Available: 2:nodejs-20.19.5-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.5-1nodesource Installing: 2:nodejs-20.19.6-1nodesource.x86_64 (nodesource-nodejs) nodejs = 2:20.19.6-1nodesource Error: Package: 2:nodejs-20.19.6-1nodesource.x86_64 (nodesource-nodejs) Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit) Error: Package: 2:nodejs-20.19.6-1nodesource.x86_64 (nodesource-nodejs) Requires: libstdc++.so.6(CXXABI_1.3.9)(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
12-17
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络中常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成中小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值