Bash语法帮助-mapfile/readarray(将文本拆分为数组)

Bash语法帮助-mapfile/readarray(将文本拆分为数组),bash,syntax,Bash,Syntax,在bash中,在一些StackOverflow答案中,它们显示了如何填充结果以将文件查找到数组中: 信息1 较旧的bash版本 mapfile -d $'\0' array < <(find . -name "${input}" -print0) mapfile-d$'\0'数组(列表)表单,写入文件将为列表提供输入 如果的我知道$(…)子流程,但我认为谢谢你,你的更新评论和链接很清楚。我现在明白了它的意思,它还解释了你不能使用空格(正如我尝试的那样),因为这样

在bash中,在一些StackOverflow答案中,它们显示了如何填充结果以将文件查找到数组中:

信息1 较旧的bash版本

mapfile -d $'\0' array < <(find . -name "${input}" -print0)

mapfile-d$'\0'数组<我还没有收到一个我会投赞成票的答案。要回答信息1的问题,如果Nahuel提供的链接过期,请参阅相关部分。这对我来说很重要,因为有时我想了解给定解决方案的作用,有时答案中没有解释这一部分

它被称为过程替代

过程替代 进程替换允许使用文件名引用进程的输入或输出。它的形式是

<(list)
功能 进程列表异步运行,其输入或输出显示为文件名。扩展后,此文件名作为参数传递给当前命令

  • 如果使用
    >(列表)
    表单,写入文件将为列表提供输入

  • 如果
    我知道
    $(…)
    子流程,但我认为
    谢谢你,你的更新评论和链接很清楚。我现在明白了它的意思,它还解释了你不能使用空格(正如我尝试的那样),因为这样意义就不同了。
    -d
    是一个读取选项,但不是。您需要使用类似于
    IFS='|'readarray端口的东西
    
    readarray -d '|' PORTS <<< "${matched}"
    
    IFS='|' read -r -a PORTS <<< $matched
    
    <(list)
    
    >(list)