Timur Fayzrakhmanov
Timur Fayzrakhmanov

Reputation: 19587

How to run Go(lang) code directly from terminal/command line?

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

Answers (2)

Rick-777
Rick-777

Reputation: 10248

Ubuntu has a gorun tool which works well for small scripts. It compiles scripts on the fly, caching the binaries in /tmp.

https://wiki.ubuntu.com/gorun

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

VonC
VonC

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

Related Questions