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

19,060

Solution 1

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.

Solution 2

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
Share:
19,060
Timur Fayzrakhmanov
Author by

Timur Fayzrakhmanov

Updated on June 15, 2022

Comments

  • Timur Fayzrakhmanov
    Timur Fayzrakhmanov almost 2 years

    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.

  • muthukumar selvaraj
    muthukumar selvaraj over 6 years
    go: missing Bazaar command the above command throws me an error
  • nover
    nover about 4 years
    @muthukumarhelius You need to install the Bazaar version tool as Ubuntu hosts their gorun-code in a bzr repo. See more here: github.com/golang/go/wiki/GoGetTools