【Linux】结构化命令:控制循环

一、break命令

可以使用break命令退出任意类型的循环,比如while和until循环。

1、跳出单个循环

bash 复制代码
#!/bin/bash
#for循环

for var1 in 1 2 3 4 5 6 7 8
do
  if [ $var1 -eq 6 ]
  then
     break
  fi
  echo "迭代数字是$var1"
done 

#while循环

var1=0

while [ $var1 -lt 8 ]
do
  if [ $var1 -eq 6 ]
  then
    break
  fi
  echo "迭代数字:$var1"
  var1=$[ $var1 + 1 ]
done

2、跳出内层循环

bash 复制代码
#!/bin/bash
for (( a = 1; a < 6; a++ ))
do
  echo "外层循环:a=$a"
  for (( b = 1; b < 50; b++ ))
  do
    if [ $b -eq 10 ]
    then
       break
    fi
    echo "   内层循环:b=$b"
  done
done

3、跳出外层循环

break命令接受单个命令行参数:break n

n是要跳出的循环层级;默认为1,表示当前循环层级;若n=2,则为下一级的外层循环。

bash 复制代码
#!/bin/bash
for (( a = 1; a < 6; a++ ))
do
  echo "外层循环:a=$a"
  for (( b = 1; b < 20; b++ ))
  do
    if [ $b -gt 6 ]
    then
      break 2
    fi
    echo "  内层循环:b=$b"
  done
done

二、continue命令

continue命令可以提前中止某次循环,但不会结束整个循环。

bash 复制代码
#!/bin/bash

for (( a = 1; a < 20; a++ ))
do
  if [ $a -gt 5 ] && [ $a -lt 11 ]
  then
    echo "会打印出来!"
    continue
    echo "不会打印出来!!"
  fi
  echo "迭代数字是:$a"
done
相关推荐
血色橄榄枝9 小时前
基于用户注册信息的关键词检测挑战赛「Datawhale AI 夏令营」
人工智能·算法·机器学习
乐维_lwops9 小时前
2026年如何实现多分支机构全网设备统一运维监控一
运维·cmdb·运维监控·网管·agent ops
Cx330❀10 小时前
【MySQL基础】一文吃透“表的约束”:从 Null/Default 到主外键的终极安全法则
linux·服务器·数据库·c++·mysql·安全
程序员JerrySUN10 小时前
Jetson 刷机深度解析:flash.sh vs l4t_initrd_flash.sh(含安全与磁盘加密对比)
linux·网络·arm开发·安全·系统安全
c2385610 小时前
第二篇:《测试指挥官:可视化单题自测框架(含 assert 实操)》
java·数据库·c++·算法·安全性测试
视觉AI10 小时前
VS Code Remote-SSH 连接Jetson踩坑完整解决记录(网段不通+主机密钥变更双重故障)
运维·网络·人工智能·windows·ssh·边缘计算
银河麒麟操作系统10 小时前
闸机高效稳跑,通勤提速升级!银河麒麟赋能北京轨交新基建
运维·服务器·安全·交通物流
六点_dn11 小时前
Linux学习笔记-printf命令
linux·运维·算法
蜡台11 小时前
Linux Python 安装使用
linux·运维·服务器
欧神附体12311 小时前
在虚拟机中添加网卡,修改网卡名并关闭SElinux
linux·服务器·网络