Arrays 未在shell脚本中更新数组值
我有一个用于将值放入数组的shell脚本。剧本对我来说很好。问题是,如果我将数组放在for循环中(在do和done之间),并且当我尝试打印超出循环的数组长度时,即在完成之后,值不会得到更新。这里是sameple代码Arrays 未在shell脚本中更新数组值,arrays,bash,shell,Arrays,Bash,Shell,我有一个用于将值放入数组的shell脚本。剧本对我来说很好。问题是,如果我将数组放在for循环中(在do和done之间),并且当我尝试打印超出循环的数组长度时,即在完成之后,值不会得到更新。这里是sameple代码 function _read_value { count=0 array[0]="hi" for ///some condition do count++ array[count]="hello" done
function _read_value
{
count=0
array[0]="hi"
for ///some condition
do
count++
array[count]="hello"
done
echo ${#array[@]
}
当我试图在末尾打印数组的长度时,它将长度显示为1。
任何帮助都将不胜感激。我对您的脚本及其更新值做了一些小更改,并且计数也很好。(我对计数增量和循环进行了更改)
我对此不熟悉,但您是否关闭for循环?还是do块?很抱歉,我使用的是while循环,而不是for。do和done在while中使用。好的,您打开并关闭do块,但是您的程序知道while的结束位置吗?对我来说,“echo”似乎也在while-loop中。实际上,对于shell脚本,while-loopok没有括号。继续努力。这似乎不是不可能解决的
#!/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