迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Bash 中的 For 循环

作者:迹忆客 最近更新:2023/03/17 浏览次数:

本文解释了如何在 Bash 脚本中使用范围表示法和三表达式表示法中的 for 循环,就像在 C 编程语言中一样。

Bash 中的 for 循环

for 循环是用于重复执行命令的 Bash 语句。Bash 中的 for 循环使用两个主要符号。这两个符号如下所示。

第一种表示法使用具有定义范围的 for 循环。在下面的语法中,范围的端点是 n。这意味着 for 循环将在它停止之前执行其中的命令 n 次。

for variable in 1 2 3 ... n
do
    command1
    command2
done

第二种表示法使用带有三表达式的 for 循环,就像在 C 编程语言中一样。exp1 是初始化,exp2 是条件,exp3 是增量。

for ((exp1; exp2; exp3))
do 
    command1 
    command2 
done

在 Bash 中使用 for 循环的示例

下面的脚本演示了在 Bash 脚本中使用 for 循环。

该脚本第一次将变量 i 的值设置为 1,并打印 line number 1。然后它返回到 for 循环,将变量 i 设置为 2,并打印 line number 2

脚本反复执行此操作,更改 i 的值,直到到达最后一个数字 5。一旦打印 line number 5for 循环将自动退出。

#!/bin/bash
for i in 1 2 3 4 5
do
    printf "line number $i"
    printf "\n"
done

运行上面的脚本会将以下输出打印到标准输出。

line number 1
line number 2
line number 3
line number 4
line number 5

下面的脚本使用花括号来定义 for 循环迭代的范围。花括号内的数字按顺序递增。

第一次,i 的值设置为 1。该脚本然后在 for 循环内执行两个 printf 命令。i 的值加 1,变为 2,然后执行 for 循环内的 printf 命令。

i 的值不断增加,直到最终变为 5,一旦执行了两个 printf 命令,for 循环会自动终止。

!/bin/bash
for i in {1..5}
do
    printf "Hello World $i"
    printf "\n"
done

以下是运行脚本后打印出来的输出。

Hello World 1
Hello World 2
Hello World 3
Hello World 4
Hello World 5

下面,脚本使用 C 编程语言中的三表达式表示法。在第一个表达式中,x 被初始化为 0。第二个表达式有条件测试,检查 x 是否小于或等于 max 变量的值。

max 变量的值已设置为 5。最后一个表达式将 x 的值增加 1

第一次,x 的值为 0,并且条件返回真,因为 0 小于或等于 5。然后 for 循环将 number: 0 打印到终端,x 的值增加 1x 现在变成 1

1 是否小于或等于 5 也会被测试,它返回 true,并且 for 循环打印 number: 1。这个过程不断重复,直到条件返回 false 并且 for 循环退出。

#!/bin/bash
max=5
printf "Print Numbers from 0 to $max\n"
for ((x=0;x<=max;x++)); do
    printf "number: $x\n"
done

下面是运行脚本后打印到终端的输出。

Print Numbers from 0 to 5
number: 0
number: 1
number: 2
number: 3
number: 4
number: 5

Bash 的 for 循环中带有 break 的条件退出

下面的脚本演示了使用 break 关键字退出 for 循环。如果 x 变量的值小于或等于 max 变量的值,for 循环被设置为迭代。然而,for 循环中有一个 test 命令。

test 命令检查 x 变量的值是否等于 3;如果此测试返回 true,则脚本遇到 break 关键字,并退出 for 循环。

#!/bin/bash
max=5
printf "Print Numbers from 0 to $max\n"
printf "Program will exit when we hit 3\n"

for ((x=0;x<=max;x++)); do
    printf "number: $x\n"
    if [ $x  -eq  3 ]
    then
        break
    fi
done

以下是脚本执行时显示到标准终端的输出。当 x 的值等于 3 时存在 for 循环,因为 for 循环内的 test 命令在 x 变量的值设置为 3 时计算算术表达式,它返回 true。然后脚本在 if 语句中遇到 break 关键字并退出。

Print Numbers from 0 to 5
Program will exit when we hit 3
number: 0
number: 1
number: 2
number: 3

for 循环替换命令

下面的脚本显示了使用带有命令替换的 for 循环。命令替换是 Bash 的一项功能,它允许我们运行 Linux 命令并将命令的输出存储在 Bash 变量中。使用此功能执行命令后,该命令的标准输出将替换该命令。

在脚本中,cat 命令使用命令替换来执行。cat file1.txt 的输出替换了命令,for 循环遍历命令的输出并使用 printf 命令将其打印到标准输出。

#!/bin/bash
printf "Program prints the lines of a file\n\n"

for line in $(cat file1.txt)
do
     printf "$line"
     printf "\n"
done

该脚本在执行时会产生以下输出。文件 file1.txt 包含打印到标准终端的三种语言的列表。

Program prints the lines of a file

French
English
Spanish

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 CentOS 中获取 IP 地址

发布时间:2023/05/04 浏览次数:108 分类:操作系统

这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。

在 Linux 中更新 YUM

发布时间:2023/05/04 浏览次数:82 分类:操作系统

本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。

在 Linux 中安装 Deb 文件

发布时间:2023/05/04 浏览次数:130 分类:操作系统

本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。

Linux 中的 lsof 命令

发布时间:2023/05/04 浏览次数:82 分类:操作系统

在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。

Linux 中的 ps aux 命令

发布时间:2023/05/04 浏览次数:69 分类:操作系统

本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。

Linux 中的 NTP

发布时间:2023/05/04 浏览次数:137 分类:操作系统

本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。

在 Bash 中创建进度条

发布时间:2023/05/04 浏览次数:164 分类:操作系统

这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便