You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请教Bash中`command < <(command)`语法的含义及示例解析

这段Bash+yq代码的运行原理详解

先看用到的YAML文件:

coolActions:
  - create
  - edit
  - delete

这是个简单的YAML结构,coolActions是一个键,对应的值是包含三个字符串元素的数组:create、edit、delete。

下面拆解Bash命令的具体运行逻辑:

1. yq命令的作用

yq '.coolActions[]' sample.yaml
yq是专门处理YAML文件的命令行工具,这里的表达式.coolActions[]用来遍历coolActions对应的数组,把数组里的每个元素单独输出一行。运行这个命令后,控制台会输出三行内容:

create
edit
delete

2. readarray与进程替换的作用

readarray actions < <(yq '.coolActions[]' sample.yaml)

  • <(...)是Bash的进程替换语法,它会把括号里命令的输出转换成一个临时的可读文件源,供后续命令读取。
  • readarray是Bash内置命令,作用是把输入的每一行内容依次存入指定的数组变量中。这里就是把yq输出的三行内容分别存入actions数组:
    • actions[0]对应第一行的create(默认会保留每行末尾的换行符,若想去掉可加-t选项,写成readarray -t actions)
    • actions[1]对应edit
    • actions[2]对应delete

后续你可以通过${actions[0]}、${actions[1]}这样的方式调用数组里的元素。

内容的提问来源于stack exchange,提问作者Signor Pizza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 20:04:53