<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) XXXX-2008 - INRIA
 * Copyright (C) 2018 - Samuel GOUGEON
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
          xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
          xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
          xml:lang="fr" xml:id="unix_x">
    <refnamediv>
        <refname>unix_x</refname>
        <refpurpose>exécute des instructions Windows, Linux ou MacOS : résultats dans une fenêtre d'information
        </refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>Séquence d'appel</title>
        <synopsis>unix_x(commands)</synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>Arguments</title>
        <variablelist>
            <varlistentry>
                <term>commands</term>
                <listitem>
                    <para>Texte unique contenant les instructions à exécuter.</para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection>
        <title>Description</title>
        <para>
            <literal>unix_x()</literal> ouvre une nouvelle session de l'interpréteur de commandes
            du système d'exploitation (OS) (<emphasis>sh</emphasis> avec Linux,
            <emphasis>cmd.exe</emphasis> avec MS Windows, etc..), lui envoie les instructions
            <varname>commands</varname>, 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.
        </para>
        <para>
            Le dossier de travail initial et les variables d'environnement de la session OS ouverte
            sont établis <link linkend="host_description">comme pour host()</link>.
        </para>
        <para>
          Les résultats renvoyés par l'interpéteur de l'OS sont redirigés et affichés dans
          une fenêtre d'information indépendante non bloquante.
        </para>
        <para>
            Si dans <varname>commands</varname> une instruction produit une erreur,
            <itemizedlist>
                <listitem>
                    le message d'erreur issu de l'OS est affiché dans la console Scilab.
                </listitem>
                <listitem>
                    <literal>unix_x</literal> est interrompue et affiche son propre message d'erreur
                    dans la console Scilab.
                </listitem>
                <listitem>
                    Dans <varname>commands</varname>, les instructions suivantes sont ignorées.
                </listitem>
                <warning>
                    Les opérations effectuées par les instructions valides figurant avant l'instruction
                    erronées demeurent réelles (par exemple, suppression de fichiers). Leurs
                    compte-rendus ou résultats affichables sont cependant ignorés : aucune fenêtre
                    d'information n'est ouverte. Les <literal>commands</literal> avec plusieurs
                    instructions sont déconseillées. Elles sont plus difficiles à déboguer.
                </warning>
            </itemizedlist>
        </para>
    </refsection>
    <refsection>
        <title>Exemples</title>
        <programlisting role="example"><![CDATA[
if getos() == 'Windows' then
  unix_x("dir "+""""+WSCI+"modules\graphics\demos"+"""");
else
  unix_x("ls $SCI/modules/graphics/demos");
end
 ]]></programlisting>
    </refsection>
    <refsection role="see also">
        <title>Voir aussi</title>
        <simplelist type="inline">
            <member>
                <link linkend="unix_g">unix_g</link>
            </member>
            <member>
                <link linkend="unix_s">unix_s</link>
            </member>
            <member>
                <link linkend="unix_w">unix_w</link>
            </member>
            <member>
                <link linkend="host">host</link>
            </member>
            <member>
                <link linkend="powershell">powershell</link>
            </member>
            <member>
                <link linkend="setenv">setenv</link>
            </member>
            <member>
                <link linkend="messagebox">messagebox</link>
            </member>
        </simplelist>
    </refsection>
</refentry>
