# exec

execução de arquivo script ("script" significa roteiro)

## Seqüência de Chamamento

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

## Parâmetros

path

  string, o endereço do arquivo script

mode

  escalar inteiro, o modo de execução (ver abaixo)

fun

  uma função do Scilab

ierr

  inteiro, 0 ou número de erro

## Descrição

`exec(path [,mode])` executa seqüencialmente as instruções contidas no arquivo fornecido por `path` com um modo de execução opcional `mode` .

Os casos diferentes para `mode` são :

0 : o valor padrão

-1 : nada é impresso

1 : eco de cada linha de comando

2 : prompt --> é impresso

3 : ecos + prompts

4 : pára antes de cada prompt. A execução retorna após cada retorno de carro.

7 : paradas + prompts + ecos : útil para demos.

`exec(fun [,mode])` executa a função `fun` como um script: sem argumentos de entrada ou saída nem ambientes de variáveis específicos. Esta forma é mais eficiente, porque o código script pode se pré-compilado (ver comp). Este método para avaliação de scripts permite armazenar scripts como funções em bibliotecas.

Se um erro é encontrado durante a execução, se o flag 'errcatch' estiver presente `exec` não imprime mensagem de erro, aborta execução de instruções e retorna com `ierr` e igual ao número de erro. Se o flag 'errcatch' não estiver presente, a manipulação de erros padrão é utilizada.

## Observação

Arquivos executáveis (exec files) podem agora ser usados para definir funções "inline" utilizando a sintaxe de definição (ver function).

## Exemplos

    // criando um arquivo script
    mputl('a=1;b=2',TMPDIR+'/meuscript')
    // executando-o
    exec(TMPDIR+'/meuscript')
    whos -name "a "

    // criando uma função
    deff('y=foo(x)','a=x+1;y=a^2')
    clear a b
    // chamando a função
    foo(1)
    // a é uma variável criada no ambiente da função foo
    //    ela é destruída quando foo retorna
    whos -name "a "

    x=1 //criando x para torná-la conhecida pelo script foo
    exec(foo)
    // a e y são criadas no ambiente corrente
    whos -name "a "

## Ver Também

- exec
- execstr
- evstr
- comp
- mode
- chdir
- pwd