exec исполнение файла-сценария

## Синтаксис

    exec(path [,mode])
                exec(fun [,mode])
                ierr = exec(path, 'errcatch' [,mode])
                ierr = exec(fun, 'errcatch' [,mode])

## Аргументы

path

  строка, путь к файлу-сценарию.

mode

  целочисленный скаляр, режим исполнения (см. ниже).

fun

  Scilab-функция.

ierr

  целое число, 0 либо номер ошибки.

## Описание

`exec(path [,mode])` исполняет последовательно Scilab-инструкции, содержащиеся в файле, указанном в пути `path`, в режиме исполнения, указанным необязательным аргументом `mode`.

Режим исполнения `mode` имеет следующие значения:

0

  значение по умолчанию.

-1

  вывод на экран не производится.

1

  отображает каждую командную строку.

2

  на экран выводится строка приглашения `-->`.

3

  отображения командных строк + строки приглашения.

4

  останавливается перед каждой строкой приглашения. Исполнение возобновляется после возврата каретки.

7

  остановки + строки приглашения + вывод на экран командных строк: режим, полезный для демонстраций.

`exec(fun [,mode])` исполняет функцию `fun` как файл-сценарий: ни входного, ни выходного аргумента, ни особого окружения переменных. Этот метод исполнения сценария позволяет хранить сценарии в виде функций в библиотеках.

Если во время исполнения произойдёт ошибка, и если будет указан флаг `'errcatch'`, то функция `exec` не будет выдавать сообщения об ошибке, прервёт исполнение инструкций и вернёт номер ошибки `ierr`. Если же флаг `'errcatch'` не будет указан, то будет работать стандартная обработка ошибок.

## Примечания

Теперь файлы для функции `exec` можно использовать для определения функций, используя синтаксис определения функции в строке (см. function).

Функция `exec` поддерживает файлы с кодировкой ANSI/ASCII и UTF-8.

Длина каждой строки в файле ограничена 4096 символами.

## Примеры

    // создадим файл-сценарий
    mputl('a=1;b=2',TMPDIR+'/myscript')
    // выполним его
    exec(TMPDIR+'/myscript')
    whos -name "a "
    // создадим функцию
    deff('y=foo(x)','a=x+1;y=a^2')
    clear a b
    // вызовем функцию
    foo(1)
    // a - переменная, созданная в окружении функции foo;
    // она будет уничтожена после возврата из foo
    whos -name "a "
    x=1 //создадим x чтобы его узнал сценарий foo
    exec(foo)
    // a и y созданы в текущем окружении
    whos -name "a "
    whos -name "y "

## Смотрите также

- execstr
- evstr
- mode
- chdir
- pwd