如何在文件中使用Linux Bash For Loop?

Bash提供了许多有用的编程功能。 for loop 是其中最有用的一个。我们可以将for循环用于迭代作业。Linux系统管理员通常使用for循环来迭代文件和文件夹。在本教程中,我们将了解如何使用 for 在Linux中循环遍历文件和目录。这个例子可以用于任何使用bash作为shell的Linux发行版,比如Ubuntu、CentOS、RedHat、Fedora、Debian、Kali、Mint等 for each 一些程序设计语言,其中一个列表是迭代的。

null

For循环语法

Bash为 for loop 但通常使用以下语法。

for F in ITEM1 ITEM2 ...; do  CODEdone
  • for 是用于在bash中创建循环的关键字
  • F 是在每个步骤中从ITEMS填充的元素或项
  • ITEM1 , ITEM2 , ITEM3 ,…是我们要迭代的项,也可以是包含多个项的某个列表
  • 代码是在每个循环中执行的实现部分

数字语法

最常用的 Numeric 语法。我们将以列表的形式提供数字,并对给定的列表进行迭代。列表中的每个数字都将在for循环中逐个迭代。每个项目都将分配给名为 $VAR 如下所示,这个名为$VAR的变量可以在for循环书中使用。

for VAR in 1 2 3 4 .. Ndo   command1 $VAR   command2   command3   ...   commandNdone

在数字语法中,它非常类似于我们提供数字集合的一般语法。

相关文章: 如何循环和迭代Python字典?

给定的文件列表语法

我们将以列表的形式提供这些文件,并在每次迭代中使用它们。在这种类型中,我们将遍历如下文件列表 file1 , file2 , file3 等。

for VAR in file1 file2 file3 file3 ... filendo   command1 $VAR   command2   command3    ...    commandNdone

命令输出语法

我们可以使用bash命令输出作为iterate的项。在这种语法中,我们希望 $(BASH_COMMAND) 将返回一个列表,我们将在其中遍历该列表。

for VAR in $(BASH_COMMAND)do   command1 $VAR   command2   command3    ...    commandNdone

循环给定的文件名

最简单的用法 for 循环超过给定的文件名。我们将用空格分隔文件。在本例中,我们将提供文件名 a , b c 然后用字符串打印出来。

for f in "a" "b" "c"; do   echo Processing $f ; done;
Loop Over Given File Names
循环给定的文件名

循环列出的文件名

如果一个目录中有成千上万个文件成为一个循环,我们该怎么办。我们需要一种更动态的方式来提供文件名。我们可以用 ls 命令以列表形式提供文件名,而无需逐个键入。

for f in $(ls); do   echo Processing $f ; done;
Loop Over Listed File Names
循环列出的文件名

循环指定的文件扩展名

有时我们可能需要处理特定的文件扩展名。我们可以指定要循环使用的文件扩展名 for 循环。在本例中,我们将使用 *.txt 分机。

for f in *.txt; do   file $f ; done;
Loop Over Specified File Extensions
循环指定的文件扩展名

循环读取文本文件中的文件

文件名可以逐行存储在文本文件中。我们可以从指定的文本文件中读取文件名并在 for 循环。在本例中,我们将读取以下文本文件并循环行。我们的文件名是 filenames.txt

abcd
$ for f in $(cat filenames.txt); do   echo Processing $f ; done;
Loop Over Files Reading From Text File
循环读取文本文件中的文件

C类For循环

到目前为止,我们已经学习了for循环的基本语法。还有更正式的for循环,与 C Programming 语言。我们需要提供开始条件、迭代操作和结束条件。

for ((START_CONDITION;ITERATE_OPERATION;END_CONDITION))do   COMMAND1   COMMAND2   ...   COMMANDNdone

在本例中,我们将使用 echo 要从中打印的命令 1 5 使用这个for循环语法。

#!/bin/bashfor (( c=1; c<=10; c++ ))do    echo "Loop $c times"done
C Like For Loop
C类For循环

无限循环

在某些情况下,我们可能需要无限循环。无限循环永远不会结束,除非它的进程被终止。我们将使用类似C的for循环来创建一个无限循环。

#!/bin/bashfor (( ; ; ))do   echo "This will run forever"done
Infinite Loop
无限循环

带出口的条件中断

在for循环期间,如果给定条件发生,我们可能需要退出。 exit 关键字可以用来中断迭代。在本例中,我们将检查 c 可分为 6 我们将结束循环。

#!/bin/bashfor (( c=1; c<=10; c++ ))do   if(($c%6 == 0))    then      exit   fi   echo "Loop $c times"done

当变量$c等于6时,终端将关闭,其中if为真,且 exit 语句将被执行。

相关文章: 什么是Java、C/C+、PHP、Python、C#、JavaScript、Bash等编程语言的循环?

使用“继续”跳到下一步

在某些情况下,我们可能需要跳过当前的迭代,但恢复到循环。我们可以用 continue 将跳转到下一个迭代的关键字。在本例中,如果 $c 变量可以除以3。

#!/bin/bashfor (( c=1; c<=10; c++ ))do   if(($c%3 == 0))    then      continue   fi   echo "Loop $c times"done
Skip To Next Step with continue
使用“继续”跳到下一步

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享