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

编写shell脚本遍历client前缀目录实现全流程自动化部署

多client目录批量操作自动化Shell脚本实现

需求背景

现有10个命名为client-1、client-2、…、client-10的目录,以及1个名为nestjs-wrapper的目录。需要遍历所有client前缀的目录执行指定操作,同时兼容后续client目录数量增长的场景,通过Shell脚本完成全流程自动化。

执行逻辑要求

  • 首先在父目录执行nvm use,确认使用指定的Node版本
  • 依次进入每个client前缀目录,执行npm install与node index.js,执行完成后返回父目录,直至所有client目录操作完毕
  • 在独立终端后台运行docker-compose up
  • 从父目录进入nestjs-wrapper目录,执行npm run start:dev启动watch模式服务

初始版本实现

最初仅实现了遍历client目录安装依赖的功能,代码如下:

pattern="/home/dario/my-folder/client"
for _dir in "${pattern}-"[[:digit:]]*; do
[ -d "$_dir" ] || continue;
pushd "$_dir" && npm install;
done 

完整功能实现方案

为了在父目录的独立终端启动docker-compose,单独创建了start-docker.sh脚本,内部仅包含docker-compose up命令。

最终可实现完整流程的脚本如下(可在脚本开头添加nvm use满足Node版本校验要求):

# 可在首行添加 nvm use 确认Node版本
pattern="client"
for _dir in "${pattern}-"[[:digit:]]*; do
[ -d "$_dir" ] || continue;
pushd "$_dir" && npm install && node index.js;
popd;
done
gnome-terminal -- ./start-docker.sh;
pushd nestjs_wrapper && npm run start:dev;

脚本说明

该脚本使用相对路径实现需求:首先遍历所有client目录安装依赖并启动服务,之后启动docker-compose,最后启动nestjs-wrapper的watch模式服务。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:36:04