Scilab: скажи, бежим ли мы без головы. Scilab: обнаружить -nw, -nogui

Scilab действительно можно автоматизировать. Например, вы можете использовать make для автоматического запуска Scilab, который будет генерировать графики и сохранять их в SVG с помощью xs2svg, а затем запустить Inkscape, чтобы интегрировать его в документ Latex (с кодом Latex в легенды!).

При использовании make удобно запускать Scilab без основного интерфейса, вызывая его с помощью -nw. Если вам не нужна графика, она может работать даже без java, если вызывается с помощью -nogui.

Было бы неплохо иметь возможность писать скрипты, которые мог бы запускать либо пользователь, либо make. Благодаря этому вы могли бы предотвратить дублирование кода, одновременно упрощая отладку и написание отчетов. Но это означает:

  • закрытие скрипта по завершении
  • возможность пропустить некоторые сюжеты, которые не следует сохранять
  • и т.д

Итак, как определить параметры -nw или -nogui внутри скрипта?


person Gabriel Devillers    schedule 03.11.2016    source источник


Ответы (1)


Использование getargs

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

то вы можете использовать эту функцию:

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

И если вы установите переменную окружения SCILAB_NW, nowindows() вернет true.

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

Это решение добавляет избыточность команде, используемой для запуска Scilab, но я не нашел другого способа. Я также пытался использовать функцию sciargs, но она показалась мне менее удобной.

person Gabriel Devillers    schedule 03.11.2016