Bash while loop: 简单掌握使用循环结构快速处理大量数据

一、while循环的基本概念

while是一种循环结构,用于重复执行一个代码块,直到指定的条件不再为真为止。while循环的基本语法如下:

while condition
do
    command1
    command2
    command3
done

执行过程为:

  1. 先判断条件
  2. 如果条件为真,则执行循环体中的指令
  3. 执行完毕后再次判断条件,如果为真,则再次执行循环,否则终止循环

例如,以下代码将在1至10之间打印所有偶数:

#!/bin/bash
i=0
while [ $i -le 10 ]
do
    if [ $(expr $i % 2) -eq 0 ]
    then
        echo $i
    fi
    i=$(expr $i + 1)
done

执行结果:

0
2
4
6
8
10

二、 while和until循环的区别

while循环是在条件为真的情况下执行代码块,而until循环是在条件为假的情况下执行代码块。因此,until循环是while循环的反义词。它的语法如下:

until condition
do
    command1
    command2
    command3
done

执行过程为:

  1. 先判断条件
  2. 如果条件为假,则执行循环体中的指令
  3. 执行完毕后再次判断条件,如果为假,则再次执行循环,否则终止循环

例如,以下代码将在1至10之间打印所有奇数:

#!/bin/bash
i=0
until [ $i -gt 10 ]
do
    if [ $(expr $i % 2) -ne 0 ]
    then
        echo $i
    fi
    i=$(expr $i + 1)
done

执行结果:

1
3
5
7
9

三、while循环常见用途

1、按行读取文件

while循环可以按行读取文件,比如:

#!/bin/bash
while read line
do
    echo $line
done < file.txt

执行结果会将file.txt文件中的每一行输出:

line1
line2
line3
...

2、循环处理命令结果

通过将命令输出传递给while循环,可以在循环中对其进行处理,例如:

#!/bin/bash
ps -ef | while read line
do
    echo $line | grep "ssh"
done

执行结果会将所有包含“ssh”关键字的进程筛选出来:

root      2831     1  0 10:13 ?        00:00:00 /usr/sbin/sshd -D
frank     2937  2831  0 10:13 ?        00:00:00 sshd: frank@pts/2

3、使用while循环进行计算

使用while循环进行计算是很实用的,例如下面的代码将计算1至100之间所有数的和:

#!/bin/bash
sum=0
i=1
while [ $i -le 100 ]
do
    sum=$(expr $sum + $i)
    i=$(expr $i + 1)
done
echo $sum

执行结果:

5050

四、while循环的一些注意事项

1、死循环

在while循环中如果没有更新循环条件,将会发生死循环,如下面的例子:

#!/bin/bash
i=0
while [ $i -lt 10 ]
do
    echo $i
done

这段代码将永远输出0,因为$i的值没有改变。为了避免死循环,需要在循环体中更新$i的值。

2、变量的值必须用双引号或大括号包含

在while循环中,如果使用变量,要注意变量的值必须用双引号或大括号包含,否则可能会出现意外错误。例如:

i=1
while [ $i -le 10 ]
do
    echo $i
    i=i+1
done

这里$i的值不会更新,因为i=i+1是一个字符串,而不是一个算术表达式。正确的写法应该是:

i=1
while [ $i -le 10 ]
do
    echo $i
    i=$(expr $i + 1)
done

i=1
while [ $i -le 10 ]
do
    echo $i
    i=$((i+1))
done

3、脚本执行时需要添加执行权限

如果你想运行bash脚本,记得在脚本上添加可执行权限,否则会报错。要添加权限,可以使用如下的命令:

chmod +x script.sh

其中,script.sh表示你要添加权限的脚本文件名。

五、结语

在Linux运维工作中,使用while循环进行快速处理大量数据非常实用。掌握while循环的基本语法、注意事项和常见用法,可以让你的工作更加高效便捷。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/284976.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-22 15:42
下一篇 2024-12-22 15:42

相关推荐

  • Python读取CSV数据画散点图

    本文将从以下方面详细阐述Python读取CSV文件并画出散点图的方法: 一、CSV文件介绍 CSV(Comma-Separated Values)即逗号分隔值,是一种存储表格数据的…

    编程 2025-04-29
  • Ojlat:一款快速开发Web应用程序的框架

    Ojlat是一款用于快速开发Web应用程序的框架。它的主要特点是高效、易用、可扩展且功能齐全。通过Ojlat,开发人员可以轻松地构建出高质量的Web应用程序。本文将从多个方面对Oj…

    编程 2025-04-29
  • Python中读入csv文件数据的方法用法介绍

    csv是一种常见的数据格式,通常用于存储小型数据集。Python作为一种广泛流行的编程语言,内置了许多操作csv文件的库。本文将从多个方面详细介绍Python读入csv文件的方法。…

    编程 2025-04-29
  • Python简单数学计算

    本文将从多个方面介绍Python的简单数学计算,包括基础运算符、函数、库以及实际应用场景。 一、基础运算符 Python提供了基础的算术运算符,包括加(+)、减(-)、乘(*)、除…

    编程 2025-04-29
  • 如何用Python统计列表中各数据的方差和标准差

    本文将从多个方面阐述如何使用Python统计列表中各数据的方差和标准差, 并给出详细的代码示例。 一、什么是方差和标准差 方差是衡量数据变异程度的统计指标,它是每个数据值和该数据值…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • Python多线程读取数据

    本文将详细介绍多线程读取数据在Python中的实现方法以及相关知识点。 一、线程和多线程 线程是操作系统调度的最小单位。单线程程序只有一个线程,按照程序从上到下的顺序逐行执行。而多…

    编程 2025-04-29
  • Python爬取公交数据

    本文将从以下几个方面详细阐述python爬取公交数据的方法: 一、准备工作 1、安装相关库 import requests from bs4 import BeautifulSou…

    编程 2025-04-29
  • Python两张表数据匹配

    本篇文章将详细阐述如何使用Python将两张表格中的数据匹配。以下是具体的解决方法。 一、数据匹配的概念 在生活和工作中,我们常常需要对多组数据进行比对和匹配。在数据量较小的情况下…

    编程 2025-04-29
  • Python海龟代码简单画图

    本文将介绍如何使用Python的海龟库进行简单画图,并提供相关示例代码。 一、基础用法 使用Python的海龟库,我们可以控制一个小海龟在窗口中移动,并利用它的“画笔”在窗口中绘制…

    编程 2025-04-29

发表回复

登录后才能评论