unix_g exécute des instructions Windows, Linux ou MacOS : résultats dans des variables

## Séquence d'appel

                rep = unix_g(commands)
                [rep, status] = unix_g(commands)
                [rep, status, msgerr] = unix_g(commands)

## Arguments

commands

  chaîne de caractères unique : instructions à exécuter.

rep

  colonne de texte : résultats normalement affichés en sortie standard.

status

  nombre entier : code de résultat d'exécution. status==0 est retourné si aucune erreur ne s'est produite.

msgerr

  Colonne de texte : message d'erreur.

## Description

`unix_g()` ouvre une nouvelle session de l'interpréteur de commandes du système d'exploitation (OS) (sh avec Linux, cmd.exe avec MS Windows, etc..), lui envoie les instructions `commands`, attend le traitement de celles-ci, reçoit les messages de résultats standard ou le possible message d'erreur générés lors du traitement, et ferme la session de l'interpréteur.

Le dossier de travail initial et les variables d'environnement de la session OS ouverte sont établis comme pour host().

Les résultats standard habituellement affichés dans le terminal de l'interpréteur sont capturés et stockés en colonne texte dans la variable `rep`.

Si `commands` comporte une instruction erronée,

- `rep` vaut "".
- Si la variable de sortie `msgerr` est indiquée, le message d'erreur normalement affiché dans le terminal de l'interpréteur est capturé et enregistré dans celle-ci. Sinon, le message d'erreur est affiché dans la console Scilab.
- Les instructions suivant celle erronée sont ignorées.
Les opérations effectuées par les instructions valides figurant dans `commands` avant l'instruction erronée demeurent réelles (par exemple, fichiers supprimés). Leurs compte-rendus ou résultats d'exécution affichables sont cependant ignorés et perdus. Les instructions multiples sont déconseillées. Elles sont souvent plus difficiles à déboguer.

## Exemples

    function d = DIR(path)
      path=pathconvert(path,%t,%t)
      if getos() == 'Windows' then
        d = unix_g('dir '+path)
      else
        d = unix_g('ls '+path)
      end
    endfunction

    DIR('SCI/etc')

## Voir aussi

- unix_s
- unix_w
- unix_x
- host
- getos
- setenv
- powershell
- Liste de codes de sortie MS Windows