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

如何通过AppleScript在Mac终端同一窗口内执行多条命令

问题原因

AppleScript 调用「终端」的do script命令时,默认每次调用都会新建独立窗口执行指令,因此你当前的写法会触发两次窗口创建,分别执行两条cd命令。

解决方法

方法1:指定同一执行目标(推荐,适合命令逻辑需要拆分的场景)

第一次执行do script时会返回对应的终端标签页对象,后续命令指定该对象作为执行目标即可,修改后代码如下:

set desktop_folder to "$HOME/Desktop"
tell application "Terminal"
    -- 执行第一条命令,保存对应的标签页对象
    set currentTab to do script "cd ~/Desktop"
    -- 后续命令指定在当前标签页中执行
    do script "cd myfolder" in currentTab
end tell

如果需要复用已经打开的当前活跃窗口的标签页,也可以直接写成do script "xxx" in front window。

方法2:多条命令拼接一次性执行(适合短命令场景)

把所有要执行的命令用分号分隔,一次性传给do script即可,不需要额外指定执行目标:

set desktop_folder to "$HOME/Desktop"
tell application "Terminal"
    do script "cd ~/Desktop; cd myfolder"
end tell

注意:原代码中的cd desktop是相对路径写法,依赖终端默认工作目录,建议替换为带~的用户目录写法或者绝对路径,避免执行失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 05:15:03