Scilab:判断我们是否 运行 无头。 Scilab:检测-nw,-nogui

Scilab: tell if we are running headless. Scilab: detect -nw, -nogui

Scilab 真的可以自动化。 例如,您可以使用 make 自动启动 Scilab,它将生成绘图并使用 xs2svg 将它们保存到 SVG,然后启动 Inkscape 将其集成到 Latex 文档中(图例中有 Latex 代码!)。

当使用make时,通过-nw调用没有主界面的Scilab很方便运行。如果你不需要图形,如果用 -nogui.

调用,它甚至可以 运行 没有 java

如果能够编写可以由用户 运行 或 make. 编写的脚本,那么您可以防止代码重复,同时允许轻松调试和编写报告。 但这意味着:

那么如何从脚本中检测选项 -nw-nogui

使用getargs

function y = nowindows()
    y = (getenv("SCILAB_NW","undefined") ~= "undefined")
endfunction

那么你可以使用这个功能:

if nowindows() then
    mprintf("Running without a window.\n")
    exit()
end

如果您设置环境变量 SCILAB_NW,nowwindows() 将 return 为真。

SCILAB_NW="true" scilab -nw -f yourscript.sce

此解决方案为用于 运行 Scilab 的命令增加了冗余,但我没有找到其他方法。我也尝试使用 sciargs 功能,但我发现它不太方便。