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

如何编写Zsh函数实现Mac下打开新终端并在其中运行C程序

解决方案

你当前写的函数无法实现需求的核心原因是:open -a Terminal -n; cd ~/desktop/c; ./target.exe 是三条顺序在当前旧终端执行的独立命令,open仅完成了新终端的启动动作,和后续的目录切换、程序运行命令没有关联,后者仍然会在旧终端中执行。

可直接使用的Zsh函数实现

完全可以通过Zsh函数实现你的需求,借助Mac系统自带的osascript工具调用AppleScript控制终端执行命令即可,函数写法如下:

foo() {
    # 调用AppleScript控制终端新建窗口执行指定命令
    osascript <<-EOF
tell application "Terminal"
    -- 新建窗口执行cd和运行程序的命令
    do script "cd ~/desktop/c && ./target.exe"
    -- 将新终端窗口调到前台
    activate
end tell
EOF
}

生效与使用

  • 将上述函数代码添加到你的~/.zshrc配置文件中
  • 执行source ~/.zshrc让配置立即生效
  • 后续直接在终端输入foo即可触发效果

可选调整(对应原-n参数启动独立终端实例)

如果你需要和原代码中-n参数效果一致,每次启动完全独立的新终端实例而非新窗口,可以调整函数为:

foo() {
    open -n -a Terminal
    osascript <<-EOF
tell application "Terminal"
    do script "cd ~/desktop/c && ./target.exe" in front window
    activate
end tell
EOF
}

注意事项

如果运行时提示权限不足,先执行一次chmod +x ~/desktop/c/target.exe给你的C程序添加可执行权限即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:15:03