Julia:确定是从REPL还是命令行运行

问题描述 投票:2回答:2

是否有办法确定是否已从命令行通过myprog.jl或从[PL]或julia myprog.jl调用了茱莉亚脚本include("myprog.jl")

[背景:我正在使用ArgParse.jl程序包,并且由于无法从REPL传递命令行参数,因此我想在调用ARGS = "argA --optB 1 --flagC"之前先设置一个变量include("myprog.jl"),以获得与[相同的结果C0]。为此,我需要知道该程序是从命令行还是从REPL调用的,这样我就可以编写类似于

julia myprog.jl argA --optB 1 --flagC

是否有办法确定是否已从命令行通过julia myprog.jl从julia脚本myprog.jl或通过include(“ myprog.jl”)从REPL调用了脚本?背景:我正在使用ArgParse.jl ...

julia read-eval-print-loop
2个回答
1
投票

是的,这是可能的。 Base定义常量if called_from_repl parse_args(ARGS,s) else parse_args(s) end ,其中包含在命令行上传递的脚本名称。宏Base.PROGRAM_FILE计算出调用此宏的脚本的路径。


0
投票

只需使用https://docs.julialang.org/en/latest/manual/faq/#man-scripting-1确定Julia是否正在运行交互式会话。

© www.soinside.com 2019 - 2024. All rights reserved.