exécute une commande Windows, Linux, ou MacOS
alias de host()
status = host(commands)
status = unix(commands)
texte unique constitué d'instructions à soumettre à l'interpréteur de commandes du système d'exploitation (Windows, Linux, ou MacOS) pour exécution.
un entier: -1 si la commande ne peut pas être exécutée (par exemple pour mémoire insuffisante). Si la commande est exécutée (avec succès ou non) : code entier de sortie retourné par l'interpréteur de commande.
![]() | Sous Windows, 0 est le plus souvent retourné en cas d'exécution sans erreur. |
host(…)
commands
à l'interpréteur,![]() | La session de l'interpréteur de commandes créée est un clône de la session OS depuis
laquelle Scilab a été lancé. En conséquence, son contexte est le suivant :
|
Les messages de résultat et/ou d'erreur issus de l'interpréteur et normalement affichés dans son propre terminal sont détournés et affichés dans le terminal de lancement de Scilab (pour MS Windows, dans la consolebox).
![]() | host() doit être préférée à son alias unix(), dont le nom prête à confusion. |
![]() | host cls; efface le contenu de la consolebox (MS Windows). |
Dossier de travail dans les sessions respectives de Scilab / de l'interpréteur DOS :
pwd // Dossier de travail courant dans la session Scilab if getos()=="Windows" host cls; consolebox on; host cd; // Dossier de travail initial dans la session de l'interpréteur de l'OS else host pwd; end // Les chemins affichés dans le terminal DOS/consolebox et dans la console Scilab sont les mêmes. | ![]() | ![]() |
Affichage dans le terminal DOS de Scilab (consolebox) :
host cls; host "echo Scilab host() function"; host "echo A & echo BC"; host("echo DEF"+ascii(10)+"echo G"); host("echo Dossier de travail: & cd"); host dira; // => erreur : commande inconnue | ![]() | ![]() |
Scilab host() function A BC DEF Dossier de travail: C:\Scilab\tests 'dira' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
Variables d'environnement du DOS, respectivement dans les sessions Scilab et host() :
setenv TEST AAAA; getenv NUMBER_OF_PROCESSORS host cls; host "echo %TEST%"; host "echo %USERNAME% %NUMBER_OF_PROCESSORS%"; host "set TEST=BBBB"; getenv TEST | ![]() | ![]() |
--> setenv TEST AAAA; --> getenv NUMBER_OF_PROCESSORS ans = 2 --> host cls; --> host "echo %TEST%"; : AAAA --> host "echo %USERNAME% %NUMBER_OF_PROCESSORS%"; : Samuel 2 --> host "set TEST=BBBB" // correctement exécuté : ans = 0. --> getenv TEST ans = AAAA
Fonction openURL() portable basée sur host():
function openURL(url) if getos()=="Windows" winopen(url) elseif getos()=="Linux" host("xdg-open """+url+"""") elseif getos()=="Darwin" // Mac OS host("open """+url+"""") else warning("openURL: OS inconnu") end endfunction // Utilisation : openURL("https://help.scilab.org/docs/current/en_US/host.html") | ![]() | ![]() |