admin 管理员组

文章数量: 887021


2024年2月7日发(作者:format相机中什么意思)

sh 数组循环赋值

在sh脚本中,我们可以使用数组来存储一组相关的数据。为了方便地对数组进行赋值操作,我们可以使用循环语句来实现。

在 bash shell 中,我们可以使用 for 循环语句来遍历数组中的元素,并进行赋值操作。下面是一个示例代码:

```

#!/bin/bash

# 定义一个数组

arr=(1 2 3 4 5)

# 遍历数组中的元素,并进行赋值

for i in ${!arr[@]}

do

arr[$i]=$(($i+1))

done

# 输出修改后的数组

echo ${arr[@]}

```

在上面的代码中,我们首先定义了一个名为 arr 的数组,其中包含了 5 个整数。接下来,我们使用 for 循环语句来遍历数组中的元素,并对每一个元素进行赋值操作。具体来说,我们使用 ${!arr[@]}

来获取数组 arr 中的所有下标,然后对每个下标对应的元素

$arr[$i] 进行赋值操作,即将其赋值为 $i+1。最后,我们输出修改 - 1 -

后的数组,即可看到每个元素的值都被成功地修改了。

需要注意的是,在 sh 脚本中,数组的下标从 0 开始,因此数组 arr 中的第一个元素下标为 0,第二个元素下标为 1,以此类推。在上面的代码中,我们使用 $(($i+1)) 来将下标 $i 转换为从 1 开始的数值,从而使得数组中的元素值从 1 开始递增。

除了使用 for 循环语句,我们还可以使用 while 循环语句来遍历数组中的元素,并进行赋值操作。不过需要注意的是,while 循环语句的使用比较繁琐,因此只适合在特殊情况下使用。下面是一个示例代码:

```

#!/bin/bash

# 定义一个数组

arr=(1 2 3 4 5)

# 获取数组的长度

len=${#arr[@]}

# 使用 while 循环语句遍历数组,并进行赋值

i=0

while [ $i -lt $len ]

do

arr[$i]=$(($i+1))

i=$(($i+1))

done

- 2 -

# 输出修改后的数组

echo ${arr[@]}

```

在上面的代码中,我们首先使用 ${#arr[@]} 来获取数组 arr

的长度,并将其保存到变量 len 中。接下来,我们使用 while 循环语句来遍历数组中的元素,并对每一个元素进行赋值操作。具体来说,我们使用 $i 来表示当前元素的下标,使用 arr[$i] 来表示当前元素的值,并将其赋值为 $i+1。最后,我们将 $i 加一,继续遍历下一个元素,直到遍历完整个数组为止。

需要注意的是,在使用 while 循环语句时,我们需要手动维护循环变量 $i 的值,并使用 -lt 操作符来判断循环是否结束,这比较繁琐,容易出错。因此,如果没有特别的需求,建议使用 for 循环语句来遍历数组,这样更加简单和安全。

- 3 -


本文标签: 数组 循环 元素 遍历 使用