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

如何自动在两个Shell标签页运行Node应用前后端开发服务器?

解决方法

问题根源

你的脚本执行到cd $backend_dir && npm run dev时,该命令会前台运行后端服务,占据当前终端进程,导致后续的osascript和前端启动命令完全无法执行。

方案1:当前终端跑后端,新标签跑前端

修改脚本,先通过osascript打开新标签并直接在新标签内执行前端启动命令,随后当前终端启动后端服务:

#!/bin/bash

# 请确保已正确赋值项目路径
# backend_dir="/path/to/your/backend"
# frontend_dir="/path/to/your/frontend"

# 打开新终端标签并执行前端启动命令
osascript -e "tell application \"Terminal\"" \
  -e "do script \"cd $frontend_dir && npm start\"" \
  -e "end tell"

# 当前终端启动后端服务
cd $backend_dir && npm run dev

方案2:当前终端跑前端,新标签跑后端

若需要调整运行位置,调换命令顺序即可:

#!/bin/bash

osascript -e "tell application \"Terminal\"" \
  -e "do script \"cd $backend_dir && npm run dev\"" \
  -e "end tell"

cd $frontend_dir && npm start

补充:针对VS Code集成终端的适配

如果你想在VS Code终端内打开新标签执行命令,可使用以下脚本(模拟快捷键操作并注入命令):

#!/bin/bash

osascript -e "tell application \"Visual Studio Code\"" \
  -e "activate" \
  -e "tell application \"System Events\" to keystroke \"t\" using {command down}" \
  -e "delay 0.5" \
  -e "tell application \"System Events\" to keystroke \"cd $frontend_dir && npm start\"" \
  -e "tell application \"System Events\" to keystroke return" \
  -e "end tell"

cd $backend_dir && npm run dev

关键说明

你之前的osascript仅模拟快捷键打开新标签,但新标签默认只会加载当前Shell环境,不会自动执行命令。使用do script指令可直接在新标签中注入要执行的命令,实现一步到位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:41:08