unt*_*gam 4 read-eval-print-loop julia
有没有办法确定 julia 脚本myprog.jl是通过命令行调用的julia myprog.jl还是通过 REPL调用的include("myprog.jl")?
背景:我正在使用ArgParse.jl包,因为我无法从 REPL 传递命令行参数,所以我只想ARGS = "argA --optB 1 --flagC"在调用之前设置一个变量include("myprog.jl"),以获得与julia myprog.jl argA --optB 1 --flagC命令行相同的结果。为此,我需要知道程序是从命令行调用还是从 REPL 调用,这样我就可以编写类似
if called_from_repl
parse_args(split(ARGS),s)
else
parse_args(s)
end
Run Code Online (Sandbox Code Playgroud)
仅isinteractive用于确定 Julia 是否正在运行交互式会话。
考虑下面的示例(我$用于命令行提示和julia>Julia REPL 提示)
$ more test.jl
println("interactive : $(isinteractive())")
$ julia test.jl
interactive : false
Run Code Online (Sandbox Code Playgroud)
现在让我们在 REPL 中运行相同的脚本:
julia> include("test.jl")
interactive : true
Run Code Online (Sandbox Code Playgroud)