首页 > 解决方案 > 如何打开新终端并在新终端中运行命令?

问题描述

Mac 11.4

我当前的函数打开一个新终端,然后在旧终端中运行一个 C 程序。

foo() {
        open -a Terminal -n; cd ~/desktop/c; ./target.exe
}

我想要它做的是打开一个新终端并在新终端内运行 C 程序。

这可能与 Zsh 函数有关吗?

标签: macosterminalzsh

解决方案


将以下脚本保存在 run-command.zsh 中:

#!/usr/bin/env zsh

run-command(){
    local tmp=$(mktemp) 
    echo "rm $tmp; cd '$PWD'; $*" > $tmp
    chmod 755 $tmp ; open -a Terminal $tmp
}

run-command "$@"

并运行它

chmod +x ./run-command.zsh
./run-command.zsh top

成功测试“top”后,您可以运行:

./run-command.zsh "cd ~/desktop/c; ./target.exe"

推荐阅读