Arrays Bash:如何声明空数组,然后向其中添加变量
我希望一个比我聪明的人能帮我 我正在编写一个Bash脚本,其中有一个Arrays Bash:如何声明空数组,然后向其中添加变量,arrays,linux,bash,Arrays,Linux,Bash,我希望一个比我聪明的人能帮我 我正在编写一个Bash脚本,其中有一个for循环,循环次数未知/未定义 现在,在这个for循环中,将有一个值分配给一个变量。让我们称之为variabe:$var1 每次循环运行(我永远不知道它运行了多少次),我都会将$var1中的值分配给一个数组,并在运行过程中慢慢构建数组。让我们调用数组$arr 这就是我到目前为止所做的: for i in $( seq 0 $unknown ); do ... some commands that will ma
for
循环,循环次数未知/未定义
现在,在这个for
循环中,将有一个值分配给一个变量。让我们称之为variabe:$var1
每次循环运行(我永远不知道它运行了多少次),我都会将$var1
中的值分配给一个数组,并在运行过程中慢慢构建数组。让我们调用数组$arr
这就是我到目前为止所做的:
for i in $( seq 0 $unknown ); do
...
some commands that will make $var1 change...
...
arr=("${arr[@]}" "$var1")
done
但是,当我想要回显或使用数组中的值时,$arr
,我没有得到任何结果
也许有人会帮我找到正确的方向
非常感谢。您声明并添加到
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
arr+=(“$var1”)
将填充循环内部的数组,如果您确实想在循环之前/之外定义空数组,arr=()
或声明-a arr
将向我们展示您如何尝试使用数组中的值,并确保您提供的不是伪代码,而是一个我们可以自己运行的工作示例,而无需进行任何更改即可看到您的问题(如定义中所述)。顺便说一句,通常,for i in$(seq 0$unknown)
最好写成for((i=0;iThanks,Charles Duffy。我边走边学……我投票重新打开了它——在我看来,虽然提议的dupe与数组有关,但关于为什么echo${arr}
只给出第一个元素,这是一个完全不同的问题。