如何通过终端运行 Julia 脚本

Ave*_*guy 10 julia

我有一个main.jl打印简单的“Hello world”字符串的脚本:

println("Hello world!")

但是,当尝试通过终端运行脚本时,如下所示:

julia> main.jl

我收到错误:

ERROR: type #main has no field jl

我在网上可以找到的所有信息都建议像我一样调用脚本来运行它。我确信我位于正确的目录中 - 我做错了什么?

sun*_*ica 11

您正在尝试从 Julia REPL 运行该文件(如julia> 行开头的提示所示)。在那里,您必须像@AndreWildberg 提到的那样使用include该文件。这将从文件中运行命令,就像您将它们输入到 REPL 中一样。

您在网上找到的信息可能是关于从“普通”终端(也称为 Linux 上的 bash 之类的控制台 shell)运行 Julia。在那里,运行julia main.jl将运行程序,尽管上面的 REPL 方法通常是使用 Julia 的首选方法。

关于使用评论中询问的参数调用脚本的问题):
首先,我要提到这不是 Julia 脚本的常见工作流程。我已经编写 Julia 代码很多年了,我必须查找如何处理命令行参数,因为我从未在 Julia 中使用过它们:通常所做的是在文件中定义所需的函数,可能是一个main函数,在执行完之后include,您可以使用main参数调用该函数(或您想要尝试的任何函数)。

现在,如果您的脚本已经使用命令行参数(并且您不想更改它),您可以做的是ARGSinclude语句之​​前分配给保存它们的变量 :


julia> push!(empty!(ARGS), "arg1")
1-element Vector{String}:
 "arg1"

julia> include("main.jl")
Run Code Online (Sandbox Code Playgroud)

在这里,我们清空ARGS以确保以前的任何值都消失了,然后将我们想要的参数推入其中。您可以出于教育目的尝试此操作,但如果您是该语言的新手,我建议您学习并习惯涉及我上面提到的函数调用的更多 Julian 工作流程。