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

huangapple go评论128阅读模式
英文:

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

问题

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

  1. package main
  2. func main() {
  3. println("hello")
  4. }

然而,Go语言只允许从文件中执行代码。所以也许有一些方法可以模拟它?像这样:

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

但在上述操作之后,不应该有任何文件残留。

英文:

I want to run simple go code directly from terminal/command line. For example:

  1. go run &quot;
  2. package main
  3. func main() {
  4. println(&quot;hello&quot;)
  5. }
  6. &quot;
  7. hello

However golang allows code execution only from file. So maybe there are some ways how to emulate it? Like this:

  1. go run file.go &lt; echo &quot;....&quot;

But there should be no files after actions above.

答案1

得分: 7

在命令行中,只有像go-repl这样的项目才能编译/运行多行Go源代码而不留下任何.go文件。另一个选择是gore

  1. $ gore
  2. 输入一行或多行代码,然后按下ctrl-D
  3. func test() string {return "hello";}
  4. println(test())
  5. ^D
  6. ---------------------------------
  7. hello

(其他类似repl的解决方案列在"Does Go provide REPL?"中)

或者你可以开发一个Go包装器,在内部创建一个源代码并运行它,然后再删除它。

英文:

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:

  1. $ gore
  2. Enter one or more lines and hit ctrl-D
  3. func test() string {return &quot;hello&quot;}
  4. println(test())
  5. ^D
  6. ---------------------------------
  7. 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.

答案2

得分: 1

Ubuntu有一个名为gorun的工具,非常适合小型脚本。它可以即时编译脚本,并将二进制文件缓存到/tmp目录中。

https://wiki.ubuntu.com/gorun

尽管它的初衷是用于脚本编写而不是作为REPL(交互式解释器),但你可以以各种方式使用它。

虽然gorun来自Ubuntu社区,但由于它使用了纯净的Go源代码,所以它应该可以在任何Linux发行版上使用。

你可以通过以下命令获取gorun

  1. $ go get launchpad.net/gorun
英文:

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

  1. $ go get launchpad.net/gorun

huangapple
  • 本文由 发表于 2015年1月3日 17:28:34
  • 转载请务必保留本文链接:https://go.coder-hub.com/27753395.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定