在shell脚本中未更新数组值

时间:2012-04-12 07:46:22

标签: arrays bash shell

我有一个用于将值放入数组的shell脚本。脚本对我来说很好。问题是,如果我将数组放在for循环中(在do和done之间),并且当我尝试打印数组长度超出循环时,即完成后,值不会更新。这是相同的代码;

function _read_value
{
    count=0
    array[0]="hi" 
    for ///some condition
    do
        count++
        array[count]="hello"
    done
    echo ${#array[@]
}

当我尝试在末尾打印数组的长度时,它显示长度为1。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我对你的脚本及其更新值进行了一些小改动,计数也很好。(我在计数增量和循环中做了改变)

#!/bin/bash
function read_value
{
    count=0
    while [ $count -le 5 ]
    do
        array[count]="hello"
        count=`expr $count + 1`
    done
    echo ${array[@]}
    echo ${#array[@]}
}

read_value