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

如何在WSL Ubuntu中编写脚本调用Windows Terminal打开可交互标签页

问题原因

标签页自动退出的核心原因是WSL启动的shell进程执行完指定命令后就会终止,Windows Terminal默认会在关联进程退出后关闭对应标签页。你之前的写法中,无论是wsl.exe "ls"还是zsh -c "ls",命令执行完成后shell进程就直接退出,没有保持运行的交互进程,因此标签页会被关闭。

正确实现方案

要满足你的三个需求,只需要在指定命令结束后,再启动一个交互式shell占住进程即可。通用格式为在每个标签的启动命令后追加; exec 你的shell(通常是zsh或bash),保证无论前置命令是正常执行完成还是被Ctrl+C中断,都会启动交互shell保留标签页。

完整可运行脚本示例
#!/bin/bash

cmd.exe /c "wt.exe" \
  new-tab --title '前端项目' --tabColor "#f00" wsl.exe zsh -ic "cd ~/projects/frontend; yarn dev; exec zsh" \; \
  new-tab --title '后端服务' --tabColor "#0f0" wsl.exe zsh -ic "cd ~/projects/backend; go run main.go; exec zsh" \; \
  new-tab --title '监控工具' --tabColor "#00f" wsl.exe zsh -ic "cd ~/projects/monitor; python3 monitor.py; exec zsh" \;
参数说明
  • -i:启动交互式shell,会自动加载你.zshrc(或.bashrc)中的所有配置,环境变量、alias、主题等都和你手动打开的终端完全一致
  • -c "命令串":指定shell启动后优先执行的命令,你可以在最前面加cd 目标路径实现标签页定位到指定文件夹,后面跟你要执行的业务命令比如yarn dev,最后用exec zsh启动新的交互式shell,直接替换当前进程,没有额外资源开销
  • 如果你习惯用bash,只需要把所有zsh替换为bash即可,逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:04