Bash可以提供不同的编程语言结构,如变量、数组、循环、决策等。循环是Bash脚本最有用的特性之一。循环将提供在给定的顺序结构(如数组、文件列表、数字、输入等)上迭代的能力。
循环语法
Bash为循环提供了替代语法。下面是for循环语法的一些示例。
for VARIABLE in 1 2 3 4 5 .. Ndo command1 command2 commandNdone
或者
for VARIABLE in file1 file2 file3do command1 on $VARIABLE command2 commandNdone
或者
for OUTPUT in $(Linux-Or-Unix-Command-Here)do command1 on $OUTPUT command2 on $OUTPUT commandNdone
For行提供循环逻辑,并为每个数字、文件或命令输出执行一个步骤。线之间 “做”和“做”是运行每一步的部分。
循环项目
循环最常用的用法之一是循环项目。我们将用空格分隔物品。所有项目都将循环。在本例中,我们将使用从1到7的数字,并逐一定义它们。
$ for count in 1 2 3 4 5 6 7 ; do echo $count; done

回路范围
我们可以像上面那样循环数字,但问题是如果需要循环超过1000个数字,我们如何实现。我们应该一个一个地写吗?不,我们可以指定如下数字范围。
$ for count in {1..7} ; do echo $count; done
我们使用 {1..7}
一个接一个地从1循环到7。
增值
我们还可以指定增量数。一个接一个递增是默认行为。我们怎样才能增加2?
$ for count in {1..5..2} ; do echo $count; done

我们增加了循环2,只使用了数字1、3、5。还有一种方法可以用43 for语句增加for循环
相关文章: Linux Bashrc文件及使用示例
循环的C样式
我们可以指定一个类似于C编程语言的语句。我们将设置统计数字、结束条件和增量值,如下所示。这里是语法
for (( EXP1; EXP2; EXP3 ))do command1 ...done
现在我们从1开始,依次递增到5。
$ for (( count=1;count<6;count++)) ; do echo $count; done

无限For循环
我们可以创建一个无限循环。如果我们不结束进程,这个循环将永远运行。
$ for (( ; ; )) ; do echo "Kill me if you can ;)"; done
我们不提供任何开始数、结束条件或增量值来触发无限循环。
无限While循环
我们可以用while语句创建无限循环。创建一个无限循环while语句更容易。
$ while true ; do echo "Kill me if you can ;)"; done
只需要给他们一个真实的陈述。
循环浏览文件
最常用的循环类型之一是通过指定目录中的文件进行循环。指定目录中的所有文件名将逐步循环。
$ for file in $(ls -1) ; do echo $file; done

在这里 $(ls -l)
提供要循环的文件名列表,每个文件名都分配给 file
每个步骤的变量。