mac 脚本命令打开新的终端 执行命令

需求 自己写脚本 可能要开一个Terminal 来跑一个服务

我的方案是通过applescript 来实现的
applescript 可以自行百度
以启动一个node为例
go启动一个服务

func execCmd(command string){
    cmd := exec.Command("/bin/bash", "-c", command)
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        fmt.Println(err)
    }
    cmd.Start()
    reader := bufio.NewReader(stdout)
    for {
        line, err2 := reader.ReadString('\n')
        if err2 != nil || io.EOF == err2 {
            break
        }
        fmt.Println(line)
    }
    cmd.Wait()
}

func runServer(){
  fmt.Println("启动node服务")
   execCmd(`cd react && yarn`)
   //osascript是一个命令行可执行
   execCmd(`osascript appscrpt.scpt ` +dir+"/react")
}

appscrpt.scpt


on run args
 tell application "Terminal"
 //语法&是字符串拼接的意思
 set currentTab to do script (("cd "&args&" && yarn start"))
  end tell
end

原文连接:https://blog.csdn.net/qq_22329521/article/details/95395446

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 26,566评论 1 45
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    伊森H阅读 2,774评论 0 15
  • 本系列出于AWeiLoveAndroid的分享,在此感谢,再结合自身经验查漏补缺,完善答案。以成系统。 Java基...
    济公大将阅读 1,388评论 1 6
  • Python语言特性 1 Python的函数参数传递 看两个如下例子,分析运行结果: 代码一: a = 1 def...
    时光清浅03阅读 376评论 0 0
  • 电影,正如我们的日记、手账、微博、朋友圈,本身就是记录生活形式的一种。 作为一名资深90后,初识韩...
    saaaasaa阅读 237评论 0 0