每当我登录OSX时,我都在尝试运行我的golang程序。我正在使用Automator尝试以下脚本:

1
2
3
#!/bin/sh
export GOPATH=/Volumes/DTSE9/worker
go run /Volumes/worker/worker.go

每当我用Automator运行它时,它就会告诉我go: command not found

  • 因此go不在PATH中。您可以将其添加到PATH中,也可以添加完整路径。
  • @JimB您的意思是在第一个导出上方添加export GOROOT=/usr/local/go/bin/go吗?只是尝试了,它是行不通的。
  • 不,请不要设置GOROOT(无论如何,这都不是GOROOT的有效值)。如果/usr/local/go/bin不在您的路径中,则需要将其添加到PATH或使用/usr/local/go/bin/go run
  • 但是,为什么不只是编译程序并运行可执行文件呢?它将运行得更快,并且不会依赖于GOPATH的状态。

创建一个类似file.go的文件,其内容应类似于:

1
2
3
4
5
6
7
///path-to/bin/go run $0 $@; exit $?

package main

func main() {
    println("Hello World!")
}

然后运行chmod +x file.go,然后您可以将其作为./file.go p1 p2执行。

  • 大声笑,从字面上确实采用了"去脚本"一词,但这是一个巧妙的技巧;)。它也应该可以在macOS上正常运行。
  • 刚刚尝试过并得到:go: unknown subcommand"./main.go" Run 'go help' for usage.
  • 您不再需要调用go命令-只需调用$ ./main.go。我正在Ubuntu上使用它;尽管我不熟悉OSX,但是由于它是POSIX兼容的OS(