使用解释说明的示例进行10个Bash For循环 Bash For循环是一种在Bash脚本中重复执行特定命令或操作的方法。以下是10个使用解释说明的Bash For循环示例。 1. 使用数字范围进行循环: “`bash for num in {1..5} do echo “Number: $num” done “` 这个循环将输出数字1到5。 2. 使用命令的输出进行循环: “`bash for file in $(ls) do echo “File: $file” done “` 这个循环将遍历当前目录中的所有文件,并输出每个文件的名称。 3. 使用数组进行循环: “`bash fruits=(“apple” “banana” “orange”) for fruit in “${fruits[@]}” do echo “Fruit: $fruit” done “` 这个循环将遍历数组中的每个元素,并输出每个水果的名称。 4. 使用通配符进行循环: “`bash for file in *.txt do echo “Text file: $file” done “` 这个循环将遍历当前目录中的所有.txt文件,并输出每个文件的名称。 5. 循环计数器: “`bash for ((i=0; i<5; i++)) do echo "Counter: $i" done “` 这个循环将输出0到4的计数器值。 6. 嵌套循环: “`bash for ((i=1; i<=3; i++)) do for ((j=1; j<=3; j++)) do echo "Outer loop: $i, Inner loop: $j" done done “` 这个循环将输出外部循环和内部循环的组合。 7. 循环读取文件内容: “`bash while IFS= read -r line do echo "Line: $line" done < file.txt “` 这个循环将逐行读取file.txt文件的内容,并输出每一行的内容。 8. 循环处理命令行参数: “`bash for arg in "$@" do echo "Argument: $arg" done “` 这个循环将遍历命令行中提供的所有参数,并输出每个参数的值。 9. 跳过循环的一次迭代: “`bash for num in {1..5} do if [ $num -eq 3 ] then continue fi echo "Number: $num" done “` 这个循环将跳过数字3,并输出其他数字。 10. 提前终止循环: “`bash for num in {1..5} do if [ $num -eq 4 ] then break fi echo "Number: $num" done “` 这个循环将在数字4之前终止,并输出其他数字。 这些示例说明了使用解释说明的Bash For循环的不同用法和功能。您可以根据自己的需求和脚本来调整和应用这些示例。

循环是任何编程语言的重要部分。它允许程序遍历一定数量的项。

例如,如果您想要遍历一个包含'n'个项的列表或数组,您将使用一个循环。让我们来看一个简单的例子:

1 紫罗兰色
2 靛蓝色
3 蓝色
4 绿色
彩虹表

为了执行上述表格中的任何操作或遍历项,我们需要一个循环。

Bash循环

在bash脚本中,循环的语法如下:

#!/bin/bash

for VAR in 1 2 3 4 5.....N

do

 ACTION 1

 ACTION 2

 .....

done

Bash循环非常简单。第一行#!/bin/bash表示该代码是bash脚本。VAR代表用于循环的临时变量。N表示最大迭代次数。‘do’和‘done’分别开始和结束循环。动作是在循环内执行的命令。

我们可以使用不同的变量(如列表、字符串、整数和数组)来执行Bash循环。本文将展示一些Bash循环的常见示例。

您可以直接在bash命令行上执行这些程序,或者将它们保存在一个文件中,并使用Bash filename.sh命令执行该文件。

读取静态列表

考虑以下列表-rainbowColorList = 紫罗兰色,靛蓝色,蓝色,绿色,黄色,橙色,红色

我们可以使用Bash循环将上述字符串列表打印如下:

#! /bin/sh

# Define the list

rainbowColorList=紫罗兰色,靛蓝色,蓝色,绿色,黄色,橙色,红色

# Comma separator pattern using //,/

for colors in ${rainbowColorList//,/ }

do

   echo $colors

done

输出将是一个新行中的项目列表。

#Output

紫罗兰色
靛蓝色
蓝色
绿色
黄色
橙色
红色

读取数组

声明数组的语法是不同的。对于每个元素(字符串),使用括号。

rainbowArray=("紫罗兰色" "靛蓝色" "蓝色" "绿色" "黄色" "橙色" "红色")

for colors in "${rainbowArray[@]}"; do

     echo "我喜欢 $colors"

done

‘@’用于循环遍历数组中的每个元素。

#Output

我喜欢紫罗兰色
我喜欢靛蓝色
我喜欢蓝色
我喜欢绿色
我喜欢黄色
我喜欢橙色
我喜欢红色

我们还可以使用循环来打印索引和数组元素。

#Printing with index

rainbowArray=("紫罗兰色" "靛蓝色" "蓝色" "绿色" "黄色" "橙色" "红色")

for i in "${!rainbowArray[@]}";

do

  echo "索引处的颜色" $i " : " "${rainbowArray[$i]}"

  i=$((i+1));

done
#Output

索引处的颜色 0 : 紫罗兰色
索引处的颜色 1 : 靛蓝色
索引处的颜色 2 : 蓝色
索引处的颜色 3 : 绿色
索引处的颜色 4 : 黄色
索引处的颜色 5 : 橙色
索引处的颜色 6 : 红色

请注意,我们在循环中使用‘!’来获取元素索引。

迭代数值范围

我们可以使用Bash循环来迭代一系列数字。

#iterating over range of numbers

echo "倒计时开始..."

for N in {10..0}

do

    echo "$N"

done

‘..’表示一系列数字。

#Output

10
9
8
7
6
5
4
3
2
1
0

我们还可以通过指定范围来跳过计数数字。

在下面的例子中,我们以3进行跳数计数。

#iterating with skip counting

echo "倒计时开始..."

for N in {30..0..3}

do

    echo "$N"

done

上面的程序以30作为第一个数字开始,倒数到0。for循环中的最后一个参数'3'指定了跳过计数。

#输出

30
27
24
21
18
15
12
9
6
3
0

字符串和字符

我们可以使用Bash For循环进行许多有趣的字符串操作。

例如,我们可以使用For循环中的'seq'运算符读取字符串的每个字符:

#读取字符串的字符

myword="welcome"

for i in $(seq 1 ${#myword})

do

 echo "${myword:i-1:1}"

done

注意,'seq'应该从1开始以获取第一个字符。

#输出

W
e
l
c
o
m
e

我们还可以逐个打印以空格分隔的字符串:

#从句子中读取每个单词

mysentence="Welcome to GeekFlare. One stop hub for all techies"

for word in $mysentence; do

    echo $word

done
#输出

Welcome 
to 
GeekFlare. 
One 
stop 
hub 
for 
all 
techies

表达式

类似于Java等其他编程语言,我们可以在Bash For循环中放置表达式。

for (( var=10; var>=0; var-- ))

do 

  echo "Counting down...$var"

done
#输出

Counting down...10
Counting down...9
Counting down...8
Counting down...7
Counting down...6
Counting down...5
Counting down...4
Counting down...3
Counting down...2
Counting down...1
Counting down...0

读取命令行参数

要从命令行参数中读取,我们使用'read'命令。在下面的示例中,我们将从用户获取一些数字,并使用Bash For循环打印它们的总和。我们使用变量total来存储中间和最终的总数或数字的总和。

read -a array -p "Enter the numbers you want to add:"

total=0

for i in ${array[@]}; do

  let total+=$i

done

echo "Sum of the numbers is: $total"

输出如下:

#输出

Enter the numbers you want to add: 3 4 66
Sum of the numbers is: 73

查找奇偶数

要查找1到10(或任何数字N)之间的奇数和偶数,我们应该在Bash for循环中使用if条件。要确定一个偶数,我们将数字除以2,如果余数为0,则将其归类为偶数,否则为奇数。

#声明保存偶数和奇数的列表

evennum=""

oddnum=""

for (( i=1; i<=10; i++ ))

do

remainder=$(( $i % 2 ))

if [ $remainder -eq 0 ]; then

 evennum="$evennum $i "

else

 oddnum="$oddnum $i "

fi

done

echo "Even numbers are: "$evennum

echo "Odd numbers are: "$oddnum

请注意,我们在上面的示例中给出了范围为10。我们可以更改此数字以获取任何范围内的偶数和奇数。您还可以尝试使用我们在上一节中学到的'read'命令从用户读取数字。

#输出

Even numbers are: 2 4 6 8 10
Odd numbers are: 1 3 5 7 9

无限循环

无限循环是指不停止执行的循环,必须使用Ctrl+C强制程序停止。我们可以使用for循环中的'; ;'运算符轻松创建一个无限循环:

for (( ; ; ))

do

  echo "Welcome to Geekflare"

done
#输出

Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
Welcome to Geekflare
^C
$

Break语句

当满足'if'条件时,使用break语句从循环中跳出。

在这个例子中,我们试图找到绿色。For循环遍历每种颜色,一旦找到绿色,由于break语句的存在,程序将跳出循环。

输出如下:

正在查找绿色,当前颜色为Violet
正在查找绿色,当前颜色为Indigo
正在查找绿色,当前颜色为Blue
我找到了我的颜色Green

Continue语句用于跳过当前循环并基于某个条件跳转到下一个循环。例如,如果不想从上一个程序中打印出颜色“Green”,可以使用continue,除了Green之外的所有其他颜色都会显示出来。

输出如下:

Violet
Indigo
Blue
Yellow
Orange
Red

我们已经介绍了Bash For循环的最常见用法,包括使用字符串、整数、数组和列表。如果你正在学习Linux,但有一台Windows 10机器,你可以使用WSL功能,在Windows机器上安装Linux。

然后,您可以类似CMD一样使用Linux终端。

接下来,您可以查看how to run bash scripts using Python.

类似文章