Reputation: 19587
I want to run simple go code directly from terminal/command line. For example:
go run "
package main
func main() {
println("hello")
}
"
hello
However golang allows code execution only from file. So maybe there are some ways how to emulate it? Like this:
go run file.go < echo "...."
But there should be no files after actions above.
Upvotes: 14
Views: 33991
Reputation: 10248
Ubuntu has a gorun
tool which works well for small scripts. It compiles scripts on the fly, caching the binaries in /tmp.
Although it's intended for scripting and not as a REPL, you could use it in various ways.
Although gorun
has come from the Ubuntu community, it should work on any Linux distro because it uses vanilla Go source code via
$ go get launchpad.net/gorun
Upvotes: 1
Reputation: 1323753
In command-line, only a project like go-repl would compile/run a multi-line go source code without leaving any .go
file behind.
An alternative: gore:
$ gore
Enter one or more lines and hit ctrl-D
func test() string {return "hello"}
println(test())
^D
---------------------------------
hello
(Other repl-like solution are listed in "Does Go provide REPL?")
Or you would need to develop a go wrapper which would internally create a source code and go run it, before deleting it.
Upvotes: 7