exec

Scilab Function
Last update : 13/07/2005

exec - exécution d'un script (fichier de commandes)

### Calling Sequence

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

### Parameters

- `path` : chaîne de caractères, le chemin du script à exécuter
- `mode` : entier, précisant le mode d'exécution (voir plus bas)
- `fun` : identificateur d'une fonction scilab
- `ierr` : entier, 0 ou numéro d'erreur

### Description

`exec(path [,mode])` exécute séquentiellement les instructions Scilab contenues dans le fichier spécifié par `path` avec le mode d'exécution optionnel `mode` .

Les différentes valeurs de `mode` sont :

  0: valeur par défaut
  -1: rien n'est affiché
  1: chaque ligne de commande est affichée
  2: l'invite de commande `-->` est affiché
  3: lignes de commandes + invite de commande
  4: pause dans l'exécution au début de chaque ligne. L'exécution reprend après un appui sur la touche entrée/return.
  7: pause + invite + affichage : ce mode est utile pour les démonstrations.

`exec(fun [,mode])` exécute la fonction `fun` comme un script : aucun argument n'est utilisé en entrée ou en sortie, et l'exécution se fait dans l'environnement courant (les variables créées dans la fonction sont conservées après l'exécution). Cette forme est plus efficace, car ainsi les instructions du script peuvent être pré-compilées (voir getf, comp). Cette méthode d'exécution des scripts permet aussi de stocker des scripts comme des fonctions dans des librairies.

Si une erreur se produit pendant l'exécution, si la chaîne de caractères 'errcatch' est présente, `exec` ne produit pas de message d'erreur, mais stoppe l'exécution du script et renvoie une valeur de `ierr` égale au numéro de l'erreur. Si la chaîne 'errcatch' n'est pas présente, la gestion habituelle des erreurs est utilisée.

### REMARQUE

### Examples

        // création d'un script
        mputl('a=1;b=2',TMPDIR+'/myscript')
        // on l'exécute
        exec(TMPDIR+'/myscript')
        whos -name "a "

        // création d'une function
        function y=foo(x),a=x+1;y=a^2,endfunction
        clear a b
        // appel à la fonction
        foo(1)
        // a est une variable créée dans l'environnement de la fonction foo
        // elle est détruite à la sortie de la fonction.
        whos -name "a "

        x=1 // on crée la variable x pour qu'elle soit connue à l'exécution de foo
        exec(foo)
        // a et y ont été créées dans l'environnement courant
        whos -name "a "

### See Also

`getf`, `execstr`, `evstr`, `comp`, `mode`, `chdir`, `getcwd`,