經絡不通,減肥難!每天疏通3處經絡,加快微循環,身體1天天變瘦!【絡穴養生課堂】
目录:
- 标准重击循环
- 遍历字符串
- 在一个数字范围内循环
- 遍历数组元素
- C样式Bash for循环
- 中断并继续声明
- 违约声明
- 继续声明
- Bash For Loop示例
- 使用文件名中的空格重命名文件
- 更改文件扩展名
- 结论
循环是编程语言的基本概念之一。 当您要一遍又一遍地运行一系列命令直到达到特定条件时,循环很方便。
在Bash等脚本语言中,循环对于自动执行重复性任务很有用。
Bash脚本中有三种基本的循环构造,分别是for循环,while循环和直到循环。
在本教程中,我们将介绍Bash中for循环的基础。 我们还将向您展示如何使用break和continue语句更改循环流。
标准重击循环
for循环遍历项目列表并执行给定的命令集。
Bash for循环采用以下形式:
for item in do done
该列表可以是一系列由空格,数字范围,命令输出,数组等分隔的字符串。
遍历字符串
在下面的示例中,循环将遍历字符串列表中的每个项目,并将变量
element
设置为当前项目。
for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done
该循环将产生以下输出:
Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium
在一个数字范围内循环
您可以使用序列表达式通过定义范围的起点和终点来指定数字或字符的范围。 序列表达式采用以下形式:
{START..END}
在下面的示例中,循环将迭代从0到3的所有数字。
for i in {0..3} do echo "Number: $i" done
Number: 0 Number: 1 Number: 2 Number: 3
从Bash 4开始,使用范围时也可以指定增量。 该表达式采用以下形式:
{START..END..INCREMENT}
for i in {0..20..5} do echo "Number: $i" done
Number: 0 Number: 5 Number: 10 Number: 15 Number: 20
遍历数组元素
您还可以使用for循环遍历元素数组:
在下面的示例中,我们定义一个数组
BOOKS
并遍历该数组的每个元素。
BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done
Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby
C样式Bash for循环
C样式的for循环的语法采用以下形式:
for ((INITIALIZATION; TEST; STEP)) do done
循环开始时,
INITIALIZATION
部分仅执行一次。 然后,评估
TEST
部分。 如果为假,则for循环终止。 如果
TEST
为true,则执行for循环体内的命令,并更新
STEP
部分。
在以下代码中,循环通过初始化
i = 0
,然后在每次迭代之前检查
i ≤ 10
。 如果为true,则将
i
和
i
的当前值打印为1(
i++
),否则循环终止。
for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done
该循环将迭代1001次,并产生以下输出:
Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000
中断并继续声明
break和continue语句可用于控制for循环的执行。
违约声明
break语句终止当前循环,并将程序控制权传递给终止语句之后的语句。 当满足特定条件时,通常用于终止循环。
在下面的示例中,一旦当前迭代项等于'Lithium',我们将使用if语句终止循环的执行。
for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'
Element: Hydrogen Element: Helium All Done!
继续声明
Continue语句退出循环的当前迭代,并将程序控制传递给循环的下一个迭代。
在下面的示例中,我们迭代一个数字范围,当当前迭代的项目等于“ 2”时,continue语句将使执行返回到循环的开头并继续下一次迭代。
for i in {1..5}; do if]; then continue fi echo "Number: $i" done
Number: 1 Number: 3 Number: 4 Number: 5
Bash For Loop示例
使用文件名中的空格重命名文件
下面的示例演示如何使用Bash for循环通过将空格替换为下划线来重命名当前目录中的所有文件,并在其名称中带有空格。
for file in *\ *; do mv "$file" "${file// /_}" done
让我们逐行分解代码:
- 第一行创建一个for循环,并循环访问名称中带有空格的所有文件的列表。 表达式
*\ *创建列表。第二行适用于列表的每个项目,并将文件移至新文件,并用下划线(_)替换空格。${file// /_}正在使用shell参数扩展用字符串替换参数中的模式。done表示循环段的结尾。
更改文件扩展名
下面的示例演示如何使用Bash for循环在当前目录中通过将文件扩展名从.jpeg替换为.jpg来重命名所有以.jpeg结尾的文件。
for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done
让我们逐行分析代码:
- 第一行创建一个for循环并遍历以'.jpeg'结尾的所有文件的列表。第二行适用于列表的每个项目,并将文件移至新文件,将'.jpeg'替换为'.jpg' 。
${file%.jpeg}使用shell参数扩展done从文件名中删除“.jpeg”部分,表示循环段的结尾。
结论
到目前为止,您应该对如何使用bash for循环遍历列表有一个很好的了解。
bash循环终端






