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

标签 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 中的值时,我没有得到任何结果

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

非常感谢。

最佳答案

您声明并添加到 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

关于arrays - Bash:如何声明空数组,然后向其中添加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60940921/

相关文章:

linux - 使用 grep 和 sed 替换字符串

linux - 添加引号的字段分隔

linux - 查找并删除文件但不是特定路径

用于查找数组中不在另一个数组中的元素的 Javascript 算法

javascript - 从数组对象索引中获取与用户单击的相册名称相对应的图像

java - 将 2 个 String[][] 和 1 个 String[] 合并为一个 String[][] 时出错

c++ - 我们可以用 SFML/C++ 制作 Sprite 数组吗?

linux - 如何使用 UNIX/LINUX 在文件上保存密码?

java - 处理java包文件夹的简单方法?

linux - 从 shell 到 docker 容器执行多个命令