如何直接从终端/命令行运行Go(lang)代码?

时间:2015-01-03 09:28:35

标签: unix ubuntu command-line go terminal

我想直接从终端/命令行运行简单的代码。例如:

go run "
package main
func main() {
println("hello")
}
"
hello

然而golang只允许从文件执行代码。那么也许有一些方法可以模仿它?像这样:

go run file.go < echo "...."

但是上面的操作之后应该没有文件。

2 个答案:

答案 0 :(得分:6)

在命令行中,只有像go-repl这样的项目才能编译/运行多行go源代码,而不会留下任何.go文件。
替代方案:gore

$ gore
Enter one or more lines and hit ctrl-D
func test() string {return "hello"}
println(test())
^D
---------------------------------
hello

(其他类似repl的解决方案列于&#34; Does Go provide REPL?&#34;)

或者您需要开发一个go包装器,它会在内部创建源代码并运行它,然后再删除它。

答案 1 :(得分:1)

Ubuntu有一个gorun工具,适用于小脚本。它动态编译脚本,在/ tmp中缓存二进制文件。

https://wiki.ubuntu.com/gorun

虽然它是用于编写脚本而不是用作REPL,但您可以通过各种方式使用它。

虽然gorun来自Ubuntu社区,但它应该适用于任何Linux发行版,因为它通过

使用vanilla Go源代码
$ go get launchpad.net/gorun