Bash for循環(huán)

2020-12-09 16:15 更新

Bash 也支持 for 循環(huán)以執(zhí)行重復(fù)性任務(wù)。它可以幫助您在字符串中的一系列單詞或數(shù)組中的元素上迭代一組特定的語句。

基礎(chǔ)

語法:

for variable in list
do
commands
done


//或


for (( expression1; expression2; expression3 ))
do
commands
done

注:
- for循環(huán)的迭代耗費(fèi)時(shí)間取決于聲明的列表變量的數(shù)量。
- 循環(huán)將從列表中選擇一項(xiàng),在循環(huán)中使用的變量上分配一個(gè)值。
- 在do···done之間執(zhí)行完畢后循環(huán)返回頂部,從列表中選擇下一個(gè)項(xiàng),重復(fù)整個(gè)過程。
列表中可以包含數(shù)字或字符串,但需以空格進(jìn)行分隔。

示例:

#!/bin/bash


learn="Start learning from W3Cschool.cn"


for learn in $learn
do
echo $learn
done


echo "Thank You."

執(zhí)行后得到以下結(jié)果:

Start
learning
from
W3Cschool.cn
Thank You.

for 循環(huán)范圍

通過..增加或減少指定的值,并以 for 循環(huán)讀取帶增/減的范圍。如下示例:

#!/bin/bash


for num in {10..0..1}
do
echo $num
done

執(zhí)行后得到以下結(jié)果:

10
9
8
7
6
5
4
3
2
1
0

for 循環(huán)讀取數(shù)組變量

for 循環(huán)可以通過循環(huán)迭代數(shù)組的值,如下示例:

#!/bin/bash


#Array Declaration
arr=( "Welcome","to","W3Cschool.cn" )


for i in "${arr[@]}"
do
echo $i
done

執(zhí)行后得到以下結(jié)果:

Welcome,
to,
W3Cschool.cn

注:
對于數(shù)組中的每個(gè)元素,通過執(zhí)行do···done循環(huán)將每個(gè)元素作為i進(jìn)行獲取。

for 循環(huán) — 三表達(dá)式

三表達(dá)式語法是 for 循環(huán)中最常見的語法,如下示例:

#!/bin/bash


for ((i=1; i<=10; i++))
do
echo "$i"
done

執(zhí)行后得到以下結(jié)果:

1
2
3
4
5
6
7
8
9
10

注:
1. i=1代表初始化
2. i<=10代表終止
3. i++代表遞增的過程

當(dāng)以上三個(gè)表達(dá)式不滿足或不存在限制時(shí),for 循環(huán)將為無限循環(huán),以Ctrl + C終止無限循環(huán)。

for 循環(huán) — break語句

您可以通過 break 語句可以終止 for 循環(huán)的重復(fù)性任務(wù),如下示例:

#!/bin/bash


for table in {2..100..2}
do
echo $table
if [ $table == 20 ]; then
break
fi
done

執(zhí)行后得到以下結(jié)果:

2
4
6
8
10
12
14
16
18
20

注:
當(dāng)table=20時(shí)滿足if語句,判斷為true,進(jìn)入此處給定的break語句,終止 for循環(huán)。

for 循環(huán) — continue語句

您可以通過 continue 語句在 for 循環(huán)中以特定條件跳過該條件下給定的特定語句,如下示例:

#!/bin/bash


for ((i=1; i<=20; i++));
do
if [[ $i -gt 5 && $i -lt 16 ]];
then
continue
fi
echo $i
done

執(zhí)行后得到以下結(jié)果:

1
2
3
4
5
16
17
18
19
20

注:
當(dāng)5<i<16時(shí)滿足if語句,判斷為true,進(jìn)入此處給定的continue語句,跳過特定的數(shù)值區(qū)間,直接處理下一個(gè)迭代。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號