for 循环语句

 一、基本介绍

循环:一种控制流程的结构,用于重复执行一段代码。是计算机编程中非常重要的一种结构,其目的是为了简化代码编写,提高代码的重复利用率,以及提高程序的效率。

遍历:一种数据操作的过程,用于访问并处理数据结构中的每个元素。在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作。

循环的优点:

  • 重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写,减少程序代码量,提高程序的可读性和可维护性。
  • 简化程序逻辑:使用循环可以使程序逻辑更加简洁明了,提高程序的可读性和可理解性,降低代码出错的可能性。
  • 提高代码的重复利用率:通过将重复发代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余。
  • 提高程序的效率:循环可以让程序自动化地执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。

二、For循环

 用于已知循环次数的场景

1.基本格式

for   变量名(是变量名称不是变量$)   in     取值列表       

do

       命令序列                                         #若满足循环做什么动作

done                                                      # for 循环结束的标志  


for ((i=0;i<=5;i++)) #类c语言格式

for i in {1..5}      #一般格式

for ((;;))           #死循环格式

2. for循环流程

读取不同的变量值,用来逐个执行同一组命令。

 三、for循环语句示例

根据IP地址检查主机状态,存放在 ip.txt 文件中 IP 地址,每行一个;使用 ping 命令检测各主机的连通性。可连通的 IP 地址存放在 ipaddr.txt 文件中。

vim yonghu.sh

for i in $(cat /opt/ip.txt)             #变量 i 参数来自 ip.txt 文件
do
 ping -c3 -W2 $i &> /dev/null           #指定ping三次,超时连接两次后退出。
 if [ $? = 0 ]
 then
   echo "$i" >> /opt/ipaddr.txt         #将变量i 重定向写入 ipaddr.txt 文件
   echo "$i连接成功" 
else
   echo "$i连接失败"
 fi
done

四、常用的转义字符

echo  -n   #表示不换行输出

echo  -e   #输出转义字符,将转义后的内容输出到屏幕上

只有加上 -e 才能执行下面的转义符:

\b转义按了退格键,前提是 \b 后面存在字符;\b 表示删除前一个字符,\b\b表示删除前两个字符
\c不换行输出,在 \c 后不存在字符相当于 echo -n ;当 \c 后存在字符,后面字符不输出
\n换行,被输出的字符从 \n 处开始另起一行
\f换行,但换行后的新行的开头位置连接着上一行的行尾
\v与 \f 相同
\t表示插入tab,即横向制表符
\r光标移到行首,但不换行
\\表示插入 \ 本身

五、跳出循环

1.continue跳出循环

表示满足continue条件时跳出循环,但是不影响后续循环执行;它的作用是在循环内部跳出本次循环并继续下一次循环。

continue 2  是一个shell 中的控制结构,它的作用是在循环内部跳过本次循环并继续下一次循环,而且会跳过两层循环,即在两层循环内部执行。

在嵌套循环中,如果我们使用 continue 2 命令,它将跳过包含它的内层循环和外层循环的迭代,并继续执行下一次外层循环的迭代。

示例: 

#! /bin/bash
for j in {1..3}          
do
  for i in {1..5}        #for循环5次从1到5
  do
   if [ $i -eq 3 ]      #if判断语句,若$i=3则执行then的内容
  then
   continue             #结束if语句
  fi
   echo "$i"            #每执行一次就输出一次$i
  done
done
~             

 

2.break跳出循环

break循环直接结束此次循环,但是不影响外边嵌套的循环。

break 2 表示结束自己所在循环和外边嵌套的一层循环,break 3 表示结束自己所在循环和外面嵌套的2层循环。

示例: 

#! /bin/bash
for j in {1..3}
do
  for i in {1..5}
  do
   if [ $i -eq 3 ]
  then
   break
  fi
   echo "$i"
  done
done

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值