Bash:如何声明空数组,然后向其添加变量

时间:2020-03-30 23:02:11

标签: arrays linux bash

我希望一个善良的人比我能在这里帮助我。

我正在处理Bash脚本,并且其中存在一个for循环,该循环将发生未知次数/未定义次数。

现在,在此for循环中,将有一个分配给变量的值。我们将此变量称为:$var1

每次循环执行一次(我永远不知道它执行了多少次),我想将$var1中的值分配给一个数组,并随着它的建立缓慢地建立数组。我们将其称为数组$arr

这是我到目前为止所拥有的:

for i in $( seq 0 $unknown ); do
    ...
    some commands that will make $var1 change...
    ...

    arr=("${arr[@]}" "$var1")
done

但是,当我要回显或使用数组$arr中的值时,没有任何结果

也许有人会在正确的方向帮助我?

我真的非常感谢。

1 个答案:

答案 0 :(得分:1)

您声明并添加到bash数组,如下所示:

declare -a  arr       # or arr=()
arr+=("item1")
arr+=("item2")

就这么简单。

执行该代码后,以下声明(除其他外)为真:

${arr[@]}  == item1 item2
${#arr[@]} == 2
${arr[1]}  == item2

根据您提供的代码,您将使用:

declare -a arr
for i in $( seq 0 $unknown ); do
    ...
    some commands that will make $var1 change...
    ...

    arr+=("$var1")
done