bash for循环
Bash for 循环命令
Bash编程中的用于循环分为两种不同的语法:
- for in循环
for item in (list) do command_one command_two ... done
在上面的循环语法中,有四个关键字,for,in,do和done。
该列表指的是"列表"中的值。
项目是一个变量名,它是Bash编程语言中的关键字。
当我们运行程序时,它将根据"列表"中的项目数执行命令。
因此,如果列表包含五个数字,则(1 2 3 4 5),命令执行五次。
在每个迭代中,列表中的值存储在项目变量中并在程序主体中使用。
- 具有类似于C编程语言的语法的循环
for (( expression_1; expression_2; expression_3)) do command_one command_two ... done
使用上面的循环声明,如果我们是C,C ++或者Java Developer,则应熟悉语法。
'Expression_1代表初始化,Expression_2代表条件,Expression_3代表更新。
当我们运行程序时,在执行第一次迭代之前评估"Expression_1"初始化用于循环的变量值。
执行程序主体,直到Expression_2为真。
这里的程序机构指的是DO和DONE关键字之间的命令。
现在,在程序的每一次迭代之后,评估表达式_3.
用于循环打印一系列字符串
我们可以使用for in循环来打印一系列字符串。
看看下面的代码。
我们已经在我们的工作目录中使用了该程序中使用的三个文件。
这是'testfile1','testfile2'和'testfile3'。
#!/bin/bash for item in testFile1 testFile2 testFile3 do cat $item echo "Done with file $item" echo done
"for in"与数组元素备份文件
我们可以使用for in循环来迭代数组中的元素。
看看下面的代码。
#!/bin/bash Files=('testFile1' 'testFile2' 'testFile3') for item in "${Files[@]}"; do cp $item{,.bak} echo "Created a backup of $item" done
'for'带距离
我们可以在一系列数字中迭代。
例如,我们希望在数字1 100之间迭代。
编写程序中的所有这些数字将使代码相当多。
我们可以通过使用范围来解决这个问题。
看看下面的代码。
#!/bin/bash for i in {0..50} do echo "COUNT: $i" done
假设我们希望在打印输出之前创建跳过一定数量的数字的范围。
然后我们需要在范围语法中包含第三个参数。
请参阅下面的代码。
#!/bin/bash for i in {0..100..10} do echo "COUNT: $i" done
具有C编程语法for循环
让我们看一下循环语法。
它包含初始化表达式,初始化循环,确定程序执行程序的条件表达式,以及更新变量值的增量表达式。
看看下面的代码。
#!/bin/bash for (( i=5; i>=1; i-- )) do echo "COUNT: $i" done
创建无限循环
要在Bash中创建无限循环,我们将使用C编程语法。
请参阅下面的代码。
#!/bin/bash for (( ; ; )) do echo "Use Ctrl+C to terminate the loop." echo "Starting Infinite Loop..." done
中断循环或继续循环
Break语句终止程序并退出循环。
另一方面,continue强制下次迭代程序进行。
- break
让我们来看看下面的程序,这利用了Break语句。
#!/bin/bash for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux do if [[ "$distro" == 'kali' ]]; then break fi echo "Linux_distribution: $distro" done
continue
与Break语句不同,Continue语句终止了该部分的程序,但迫使程序的下一次迭代运行。
看看下面的代码。
#!/bin/bash for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux do if [[ "$distro" == 'Kali' ]]; then continue fi echo "Linux_distribution: $distro" done