Bash for循环
Bash 也支持 for 循环以执行重复性任务。它可以帮助您在字符串中的一系列单词或数组中的元素上迭代一组特定的语句。
基础
语法:
for variable in list
do
commands
done
//或
for (( expression1; expression2; expression3 ))
do
commands
done
注:
-for
循环的迭代耗费时间取决于声明的列表变量的数量。
- 循环将从列表中选择一项,在循环中使用的变量上分配一个值。
- 在do···done
之间执行完毕后循环返回顶部,从列表中选择下一个项,重复整个过程。
列表中可以包含数字或字符串,但需以空格进行分隔。
示例:
#!/bin/bash
learn="Start learning from W3Cschool.cn"
for learn in $learn
do
echo $learn
done
echo "Thank You."
执行后得到以下结果:
Start
learning
from
W3Cschool.cn
Thank You.
for 循环范围
通过..
增加或减少指定的值,并以 for 循环读取带增/减的范围。如下示例:
#!/bin/bash
for num in {10..0..1}
do
echo $num
done
执行后得到以下结果:
10
9
8
7
6
5
4
3
2
1
0
for 循环读取数组变量
for 循环可以通过循环迭代数组的值,如下示例:
#!/bin/bash
#Array Declaration
arr=( "Welcome","to","W3Cschool.cn" )
for i in "${arr[@]}"
do
echo $i
done
执行后得到以下结果:
Welcome,
to,
W3Cschool.cn
注:
对于数组中的每个元素,通过执行do···done
循环将每个元素作为i
进行获取。
for 循环 — 三表达式
三表达式语法是 for 循环中最常见的语法,如下示例:
#!/bin/bash
for ((i=1; i<=10; i++))
do
echo "$i"
done
执行后得到以下结果:
1
2
3
4
5
6
7
8
9
10
注:
1. i=1代表初始化
2. i<=10代表终止
3. i++代表递增的过程
当以上三个表达式不满足或不存在限制时,for 循环将为无限循环,以Ctrl + C终止无限循环。
for 循环 — break语句
您可以通过 break 语句可以终止 for 循环的重复性任务,如下示例:
#!/bin/bash
for table in {2..100..2}
do
echo $table
if [ $table == 20 ]; then
break
fi
done
执行后得到以下结果:
2
4
6
8
10
12
14
16
18
20
注:
当table
=20时满足if
语句,判断为true
,进入此处给定的break
语句,终止for
循环。
for 循环 — continue语句
您可以通过 continue 语句在 for 循环中以特定条件跳过该条件下给定的特定语句,如下示例:
#!/bin/bash
for ((i=1; i<=20; i++));
do
if [[ $i -gt 5 && $i -lt 16 ]];
then
continue
fi
echo $i
done
执行后得到以下结果:
1
2
3
4
5
16
17
18
19
20
注:
当5<i
<16时满足if
语句,判断为true
,进入此处给定的continue
语句,跳过特定的数值区间,直接处理下一个迭代。