Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Bash:如何声明空数组,然后向其中添加变量_Arrays_Linux_Bash - Fatal编程技术网

Arrays 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

我希望一个比我聪明的人能帮我

我正在编写一个Bash脚本,其中有一个
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}
只给出第一个元素,这是一个完全不同的问题。