arrays - 重置数组并用 bash 脚本中的值填充它

标签 arrays linux bash shell

我想知道执行此操作的“正确”方法。基本上,我有一个名为 current 的数组中的文件列表。这被声明为一个全局变量,如下所示:current=()。我已经成功地将所有文件放入这个数组中。但现在,我正在通过并解析参数来过滤掉这些文件和目录。

例如,为了实现 -name '*.pattern' 命令,我将 pattern 传递给 process_name()这个:

process_name ()
{
    local new_cur=()
    for i in "${current[@]}"; do
        if [[ "$i" == "$1" ]]; then
            new_cur+=("$i")
        fi
    done
    current=( "${new_cur[@]}" )
}

循环结束后,我想“清除”我的current 数组。然后我想遍历 new_cur 数组,基本上使它等于 current,或者如果可以的话,就做类似 $current = $new_cur(虽然我知道这行不通)。

我已经尝试在 for 循环之后执行此操作(在 process_name() 中),但我的数组 current 实际上并没有改变:

current=( "${new_cur[@]}" )

有什么好的方法吗?还是正确的方法?

最佳答案

要重置数组,只需使用:

current=()

这将删除旧条目并声明一个 0 元素数组。

关于arrays - 重置数组并用 bash 脚本中的值填充它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28737493/

相关文章:

java - ArrayList toArray() 方法的转换问题

javascript - 如何在 JavaScript 中比较数组?

返回 bool 值和消息的 Pythonic 方式

c - 避免警告 : expected ‘const struct aiocb * const*’ but argument is of type ‘struct aiocb **’

linux - 从作为脚本的新 bash 实例中执行一组命令

linux - JBoss5 和 JBoss7 安装冲突相同的 Linux 机器

javascript - 基于查找值求和二维数组中的值 - Javascript

Java::在不同的类中使用鼠标监听器对象

php 窗口在 windows 中比 linux 慢 4~5 倍

linux - 如何从 linux 中的分隔字符串中找到最小字符串?