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

如何基于数组和命令模板生成&&连接的Bash执行命令

实现方案

完全可以实现你描述的遍历模板生成命令、按顺序短路执行的效果,不需要依赖yarn workspaces foreach,以下是适配不同场景的正确语法:

终端直接执行的Bash写法

逻辑和你给出的伪代码完全对齐:遍历数组填充命令模板,用&&拼接后统一执行,和你原本手写的长串命令行为完全一致:

# 定义目标参数数组
targets=('b' 'w' 'g' 's')
# 拼接命令串
full_cmd=""
for t in "${targets[@]}"; do
  full_cmd+="yarn $t types && "
done
# 切除末尾多余的 && 后执行
eval "${full_cmd%&& }"

package.json 脚本适配写法

写在package.json的scripts字段中时,推荐用更简洁的短路循环写法,不需要拼接命令字符串,行为和&&拼接完全等价:任意一个命令执行失败就立刻终止,输出效果和原生手写命令完全一致,无额外封装输出:

{
  "scripts": {
    "run-all-types": "for t in b w g s; do yarn $t types || exit 1; done"
  }
}

配置完成后直接执行yarn run-all-types即可达到你原本输入长串命令的效果。

如果你更偏好和伪代码一致的拼接执行写法,package.json中也可以用单行版的eval实现:

{
  "scripts": {
    "run-all-types": "arr='b w g s'; cmd=''; for t in $arr; do cmd=\"$cmd yarn $t types &&\"; done; eval \"${cmd%&&}\""
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:42:36