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。最后,我们输出修改后的数组,即可看到每个元素的值都被成功地修改了。
    需要注意的是,在 sh 脚本中,数组的下标从 0 开始,因此数组 arr 中的第一个元素下标
为 0,第二个元素下标为 1,以此类推。在上面的代码中,我们使用 $(($i+1)) 来将下标 $i 转换为从 1 开始的数值,从而使得数组中的元素值从 1 开始递增。
    除了使用 for 循环语句,我们还可以使用 while 循环语句来遍历数组中的元素,并进行赋值操作。不过需要注意的是,while 循环语句的使用比较繁琐,因此只适合在特殊情况下使用。下面是一个示例代码:while语句都可以用for改写
    ```
    #!/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
    # 输出修改后的数组
    echo ${arr[@]}
    ```
    在上面的代码中,我们首先使用 ${#arr[@]} 来获取数组 arr 的长度,并将其保存到变量 len 中。接下来,我们使用 while 循环语句来遍历数组中的元素,并对每一个元素进行赋值
操作。具体来说,我们使用 $i 来表示当前元素的下标,使用 arr[$i] 来表示当前元素的值,并将其赋值为 $i+1。最后,我们将 $i 加一,继续遍历下一个元素,直到遍历完整个数组为止。
    需要注意的是,在使用 while 循环语句时,我们需要手动维护循环变量 $i 的值,并使用 -lt 操作符来判断循环是否结束,这比较繁琐,容易出错。因此,如果没有特别的需求,建议使用 for 循环语句来遍历数组,这样更加简单和安全。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。