scilab lance Scilab en mode interactif ou batch avec options

## Syntaxe

    scilab <Options>

## Options

La liste des options de lancement de Scilab -- incluant celles à l'usage des développeurs -- peut être affichée dans le terminal de l'OS, en utilisant `--help` :

                unix_w(SCI+"/bin/scilab --help 2>&1")

    --> unix_w(SCI+"/bin/scilab --help 2>&1")
    Usage: Scilab <options>
          -args arg1 arg2..: Send directly some arg1 arg2 .. data to the session.
                             arg1 arg2 .. values can then be read through sciargs().
          -e Instruction   : Execute the scilab instruction given in Instruction argument.
                             -e and -f arguments are mutually exclusive.
          -f File          : Execute the scilab script given in File argument.
                             -e and -f arguments are mutually exclusive.
          -quit            : force scilab exit after execution of script from -e or -f argument.
                             Flag ignored if it is not used with -e or -f argument.
          -l lang          : Change the language of scilab (default : en_US).
          -nw              : Enable console mode.
          -nwni            : Enable terminal mode.
          -ns              : Do not execute etc/scilab.start.
          -nouserstartup   : Do not execute user startup files (SCIHOME/scilab.ini|.scilab).
          -noatomsautoload : Do not autoload eligible ATOMS modules.
          -nb              : Do not display the banner (no banner).
          -scihome <dir>   : Force SCIHOME to <dir>.
          -texmacs         : Option to use Scilab from documents through http://texmacs.org.
          -version         : Display the Scilab version (no session opened).
          -display Display : Set the display to the X server Display (XWindow systems only).
                             unix:0.0 is the default.
          --help           : Display this help.

    Developer Trace arguments:
          --parse-trace    : Display bison state machine evolution.
          --AST-trace      : Display ASCII-art AST to be human readable.
          --pretty-print   : Display pretty-printed code, standard Scilab syntax.

    Developer Timer arguments:
          --AST-timed      : Time each AST node.
          --timed          : Time global execution.

    Developer Debug arguments:
          --no-exec        : Only do Lexing/parsing do not execute instructions.
          --context-dump   : Display context status.
          --exec-verbose   : Display command before running it.
          --timeout delay  : Kill the Scilab process after a delay.

Leur description suit ci-dessous.

-args arg#1 arg#2 ..

  Cette option permet de transmettre des données à la session Scilab à ouvrir :

  - Des données consécutives sont séparées par un ou plusieurs espaces.
  - Une expression entre guillemets `"` constitue une donnée unique.
  - Pour inclure un guillemet dans une donnée, écrire `\"` au lieu de `"`.
  - L'apostrophe `'` est un caractère normal. Il n'a pas de signification particulière.

  Dans la session ouverte, les données `arg#1, arg#2, ..` peuvent être récupérées comme autant d'expressions texte avec sciargs().

  Exemple :

      C:\Users\Me> C:\SCIdir\bin\scilab -nw -nb -noatomsautoload -args "Hello %USERNAME%" 1.2345 \"%cd%\"

      // Dans la session ouverte :
      a = sciargs()
      i = find(a=="-args")
      a(i+1)
      evstr(a(i+2))*2
      "Cette session a été lancée depuis " + a(i+3)

      --> // Dans la session ouverte :
      --> a = sciargs()
       a  =
      ! c:\SCIdir\bin\WScilex-cli.exe !
      ! -nb                           !
      ! -noatomsautoload              !
      ! -args                         !
      ! Hello John                    !
      ! 1.2345                        !
      ! "C:\Users\Me"                 !

      --> i = find(a=="-args")
       i  =
          5.

      --> a(i+1)
       ans  =
       Hello John

      --> evstr(a(i+2))*2
       ans  =
          2.469

      --> "Cette session a été lancée depuis " + a(i+3)
       ans  =
       Cette session a été lancée depuis "C:\Users\Me"

  Noter ici que `>scilab -nw` a été traduit en `Wscilex-cli.exe` par le script batch de lancement `scilab`, de sorte que l'option "-nw" ne figure pas dans le résultat de `sciargs()` (voir plus loin).

  Utiliser `-args` comme dernière option sur la ligne de commande est plus sûr.
-display Display

  Cette option n'est valide que pour les version basées sur Xwindow, elle peut alors être utilisée pour specifier un server X. La valeur par défaut est unix:0.0

  `-display` peut être remplacé par `-d`

-e Instructions

  À l'issue du démarrage complet de la session, cette option

  - fixe le dossier de travail de Scilab au dossier système depuis lequel Scilab a été lancé. Voir l'exemple donné plus bas pour l'option `-f`. Puis,

  - éxécute les `Instructions` Scilab indiquées. Exemple :

        OS> scilab -nw -e  "disp(\"Hello\"); a=%pi+%i; disp(exp(a)); exit;" -nb

  Les options `-e` et `-f` ne peuvent pas être utilisées ensemble.
-f Fichier

  Si cette option est indiquée, alors au début de la session Scilab, après l'exécution des fichiers de démarrage de Scilab et de l'utilisateur, et après l'activation des Préférences de l'utilisateur -- dont celles concernant le dossier de travail par défaut --,

  - le dossier de travail de Scilab est fixé au dossier système depuis lequel Scilab a été lancé. Par exemple,

        D:\users\me\scilab\dev> C:\SCIdir\bin\scilab -f ..\test.sce

    exécutera `cd("D:\users\me\scilab\dev")`.

  - le script Scilab `Fichier` est exécuté. S'il est indiqué avec un chemin relatif (`.\` par défaut, ou tel que `..\` dans l'exemple ci-dessus), celui-ci se réfère au nouveau dossier de travail de Scilab.

  Un fichier avec l'extension .xcos sera ouvert par Xcos.

-quit

  Cette option force Scilab à quitter la session après l'exécution des instructions données par l'option `-e` ou par le script indiqué via l'option `-f`, y compris en cas d'erreur d'exécution. Cette option doit toujours être utilisée en mode batch. Elle est ignorée lorsque l'option `-e` ou `-f` n'est pas utilisée.

-l lang

  Cette option permet de sélectionner la langue de l'utilisateur. lang peut avoir les valeurs suivantes : ca_ES de_DE en_US es_ES fr_FR ja_JP pt_BR ru_RU zh_CN zh_TW .

  Pour des raisons de compatibilité, les valeurs `-l fr`, `-l pt`, ou `-l en` sont également utilisables, pour sélectionner le francais, le portugais (brésilien), ou l'anglais.

  Sous Windows, en modes Scilab "-nw" ou "-nwni", la police sélectionnée pour le terminal doit être TrueType pour supporter l'encodage UTF-8 des polices internationales, telle que Monospaced (meilleur choix, si disponible) ou Consolas ou Lucida Console..

  Avec certains systèmes, la compilation des locales peut être nécessaire pour rendre correctement les polices UTF-8.

-nb

  "no banner" : supprime l'affichage du message de chargement de Scilab.

-ns

  "no startup" : supprime l'éxécution du script de démarrage "principal" `SCI/etc/scilab.start` ainsi que les fichiers de démarrage "utilisateur" `SCIHOME/.scilab` et `SCIHOME/scilab.ini` ne sont pas pas exécutés.

  Cette option désactive de nombreuses fonctionnalités de Scilab. À utiliser avec expertise et discernement.
-nouserstartup

  Si cette option est fournie, les fichiers de démarrage "utilisateur" `SCIHOME/.scilab`, `SCIHOME/scilab.ini` ne sont pas exécutés.

-noatomsautoload

  supprime le chargement en début de session des modules ATOMS installés.

-nw

  si cette option est présente, Scilab est lancé en tant qu'interprêteur de commandes avancé : la console est sans menus, mais les fonctionnalités Java sont disponibles (graphiques, export, xcos, scinotes, navigateur d'aide, module JIMS, etc).

  La redirection (piping) est disponible pour tous les systèmes d'exploitation supportés. Voir les exemples pour plus de détails.

  Le fichier Scilab executable réellement lancé lorsque l'option "-nw" est utilisée est

  - Sous Windows : `WScilex-cli.exe`.
  - Sous Linux ou MacOS : `scilab-adv-cli` (Scilab Advanced Command Line Interpreter).
-nwni / -nogui
  Cette option supprime le chargement de la Machine Virtuelle Java en mémoire. Elle accélère le démarrage de Scilab et réduit la mémoire consommée. Mais alors...
  Scilab est lancé en tant que simple interprêteur de commandes, sans aucune fonctionalité avancée requérant la JVM : les fonctionalités graphiques, les interfaces graphiques dont les navigateurs d'aide, de démos, de modules externes, de variables, l'éditeur Scinotes, le module "Java depuis Scilab"... ne sont pas disponibles dans ce mode.

  La redirection (piping) est disponible pour tous les systèmes d'exploitation supportés. Voir les exemples pour plus de détails.

  Le fichier Scilab executable réellement lancé lorsque l'option "-nwni" est utilisée est

  - Sous Windows : `Scilex.exe`.
  - Sous Linux ou MacOS : `scilab-cli` (Scilab Command Line Interpreter).
-scihome dir

  Affecte à SCIHOME le chemin spécifié par `dir` (entre guillemets s'il inclut des espaces)(pas entre apostrophes !). Si `dir` est un chemin relatif il est ajouté au répertoire parent de SCIHOME.

  Sous Windows : | %USERPROFILE%\AppData\Roaming\Scilab\`dir`
  Sous Linux/MacOS : | ~/.Scilab/`dir`

--texmacs

  Cette option est utilisée lorsque Scilab est utilisé comme interface de calcul au sein du logiciel libre d'édition Scientifique TeXmacs, via le module ATOMS TeXmacs. Celui-ci doit être préalablement installé sous Scilab avec la commande `atomsInstall('texmacs')`.

-version

  Cette option affiche la version de Scilab dans le terminal, sans ouvrir de session Scilab.

## Options supplémentaires sous Unix/Linux ou Mac OS X

Conseil: utiliser ces options à partir de l'arborescence source de Scilab.

-debug

  Lance Scilab sous gdb.

  Définir la variable SCILAB_GDB_OPT pour ajouter des options supplémentaire à gdb.

-debug-rr

  Lance Scilab sous rr.

-debug-kdbg

  Lance Scilab sous kdbg.

-profiling

  Lance Scilab sous valgrind.

  Définir la variable SCILAB_VALGRIND_OPT pour ajouter des options supplémentaire à valgrind (et surcharger les options de valgrind existantes).

-profiling-visu

  Lance Scilab sous callgrind.

  Définir la variable SCILAB_VALGRIND_OPT pour ajouter des options supplémentaires à callgrind (et surcharger les options de callgrind existante).

-electric-fence

  Lance Scilab sous Electric Fence.

## Variables d'environnement

SCIVERBOSE

  Si cette variable d'environnement est présente, le script de démarrage de Scilab affichera les informations de debug. Principalement utilisée pour du debug ou le report de bugs.

JAVA_HOME

  Indique quelle version de Java utiliser. Par exemple, `JAVA_HOME=/usr/lib/jvm/java-7-openjdk/ scilab` démarrera Scilab avec la version 7 de Java.

SCI_DISABLE_TK

  Désactive les fonctionnalités Tk (mais pas Tcl)

SCI_JAVA_ENABLE_HEADLESS

  Démarre Java en mode Headless (ie sans les fonctionnalités graphiques).

## Options JVM (Java Virtual Machine)

Les options décrites ci-dessous sont inutiles et sans effet lorsque l'option `-nwni` est utilisée.

A partir de la version 5.0 de Scilab, l'interface graphique et le système de génération de la documentation sont basés sur des fonctionnalités Java. Dans certains cas, il peut être intéressant de modifier les options de la JVM (Java Virtual Machine).

Ces options sont accessibles dans le fichier SCI/etc/jvm_options.xml. En particulier, les trois options suivantes sont disponibles :

-XmxXXXm

  Cette option indique la quantité de mémoire mise à disposition de la machine virtuelle Java. Par défaut, la valeur est de 256M. Si vous changez cette valeur, assurez vous que cette valeur ne dépasse pas la quantité de mémoire accessible sur le système.

  Cette valeur peut être réglée dans les préférences.

-Djava.compiler=JIT

  Avec la valeur JIT, le compilateur Java Just In Time (JIT) est activé. Il est activé par défault. NONE désactive le JIT et diminue de manière importante les performances.

-verbose:jni / -Xcheck:jni

  Ces options activent de nombreuses vérifications, message de débug et autres contrôles sur les appels JNI (appel natif Java). Ces options sont utiles pour le débuggage et désactivée par défaut à cause de l'impact sur les performances.

De nombreuses options sont disponibles. Elles peuvent améliorer les performances, changer le rendu graphique, la gestion de la mémoire... Voir: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

## Exemples

    # Lançons Scilab en mode profilage sans qu'un gdb soit lancé à chaque SIGSEGV.
    # On est sous Bash
    export SCILAB_VALGRIND_OPT="--db-attach=no --log-file=myfile.txt"
    scilab -profiling

    # Lançons Scilab en mode debug sans s'arrêter à chaque SIGSEGV
    # D'abord écrivons un petit fichier de commandes
    echo "handle SIGSEGV nostop" > debug.txt
    # On règle l'option de gdb
    # On est sous Bash
    export SCILAB_GDB_OPT="--command=debug.txt"
    # Lançons Scilab en mode debug
    scilab -debug

    # Sous GNU/Linux, Mac OS X or Unix:
    $ echo "disp(%pi)" | scilab-cli
    ou
    $ echo "disp(%pi)" | scilab -nwni

    # Ouvre uniquement la fenêtre d'aide Scilab:
    $ scilab-adv-cli -e "help()"
    or
    $ scilab -nw -e "help()"

    # Scilab utilisé en tant que moteur de scripting
    echo "if 1&lt;>2 then exit(99) end"|scilab-cli
    echo $?

## Voir aussi

- startup
- sciargs
- getpid
- getenv
- getversion
- getscilabmode
- consolebox
- exit
- preferences
- TeXmacs

## Historique

5.2.0 La redirection est disponible (piping). Option -l lang ajoutée.
5.4.0 -noatomsautoload ajoutée. La mémoire JVM réservée est réglable dans les préférences.
5.4.1 scinotes et xcos peuvent maintenant être démarrés en ligne de commande. Voir le SEP #87.
6.0.0

- Options pour l'utilisateur :
  - Ajoutées : `--help`, `-quit`
  - Supprimée : `-mem`
- Options ajoutées pour les développeurs :
  - `--parse-trace`, `--AST-trace`, `--pretty-print`
  - `--AST-timed`, `--timed`
  - `--no-exec`, `--exec-verbose`, `--timeout delay`, `--context-dump`.

6.0.1 Option `-scihome` ajoutée.

Sur Windows, un nouveau fichier `scilab.bat` devient le principal script executable gérant toutes les options de lancement. Il y a désormais 3 binaires exécutables Wscilex.exe, Wscilex-cli.exe, et Scilex.exe correspondant à chacun des modes STD|NW|NWNI de lancement de Scilab.