executes a Windows, Linux, or MacOS command
alias of host()
status = host(commands)
status = unix(commands)
Single text containing Windows, Linux, or MacOS instructions sent to the OS command interpreter.
integer flag: -1 if the commands
can't be executed
(for instance due to unsufficient memory). If commands
is executed (successfully or not) : exit code number returned by the Operating
System (OS) interpreter.
![]() | With Windows, 0 is most often returned in case of successful execution. |
host(…)
commands
to it,![]() | The opened session of the OS interpreter is a fork of the session homing the current
Scilab session. As a consequence, it has the following properties:
|
The host(…) results as standard output and standard errors are written in the terminal from which the Scilab session has been launched (a.k.a. the consolebox for MS Windows)..
![]() | host() shall be preferred to its unix() alias, whose name is misleading. |
![]() | On MS Windows, host("cls") CLears the consolebox Screen. |
Current working directory in the host() and Scilab OS interpreter respective sessions:
pwd // Current working directory of the Scilab session if getos()=="Windows" host cls; consolebox on; host cd; // Starting working directory in the OS interpreter session else host pwd; end // The paths in the OS terminal/consolebox and in the Scilab console are the same <<== | ![]() | ![]() |
Display in the OS terminal (consolebox):
host cls; host "echo Scilab host() function"; host "echo A & echo BC"; host("echo DEF"+ascii(10)+"echo G"); host("echo Current working directory: & cd"); host dira; // => error: unknown command | ![]() | ![]() |
Scilab host() function A BC DEF Current working directory: C:\Scilab\tests 'dira' is not a known internal or external command, executable program, or batch file.
Environment variables in the Scilab and host() sessions:
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" // well done: ans = 0. --> getenv TEST ans = AAAA
Portable openURL() function based on host():