如何在Visual Studio Code集成终端内打开新标签(非快捷键方式)?
在macOS Big Sur中实现脚本运行后自动打开新终端标签执行第二个脚本
ZSH 实现方案(优先推荐)
纯ZSH无法直接控制Terminal的UI操作(比如打开新标签),但可以在ZSH脚本中嵌入osascript命令调用AppleScript实现需求,整体逻辑仍以ZSH脚本为主:
- 编写包含完整逻辑的ZSH脚本(比如
run_scripts.zsh):
#!/bin/zsh # 执行第一个脚本 ./first_script.sh # 第一个脚本执行完成后,打开新终端标签并运行第二个脚本 osascript <<EOF tell application "Terminal" activate -- 快捷键打开新标签 tell application "System Events" to keystroke "t" using {command down} -- 在新标签中切换到当前工作目录并执行第二个脚本 do script "cd '$PWD'; ./second_script.sh" in front window end tell EOF
- 给脚本添加执行权限:
chmod +x run_scripts.zsh first_script.sh second_script.sh
- 直接运行该ZSH脚本即可:
./run_scripts.zsh
关键说明
- 如果脚本不在当前工作目录,务必使用绝对路径(比如
/Users/xxx/projects/first_script.sh)代替相对路径 - ZSH会自动等待第一个脚本执行完毕后,才会触发后续的新标签操作,无需额外添加延迟
AppleScript 备选方案
如果需要单独用AppleScript实现,可创建如下脚本文件(比如run_scripts.scpt):
tell application "Terminal" activate -- 在当前标签执行第一个脚本 do script "/Users/xxx/projects/first_script.sh" in front window -- 等待第一个脚本执行完成(根据实际情况调整延迟时间,移除该句则两个脚本并行执行) delay 8 -- 打开新标签 tell application "System Events" to keystroke "t" using {command down} -- 在新标签执行第二个脚本 do script "cd /Users/xxx/projects; ./second_script.sh" in front window end tell
运行方式:在终端执行osascript run_scripts.scpt即可。
内容的提问来源于stack exchange,提问作者anonymoose
相关产品推荐
相关产品推荐

