SHELL

SHELL Command [ WAIT ] [ FOR ( READ | WRITE | READ WRITE ) [ AS Variable ]

Выполняет команду через системный командный процессор (shell). Создается внутренний объект Process для обслуживания команды.


Пример

' Get the content of a directory

SHELL "ls -la > /tmp/result" WAIT
Content = File.Load("/tmp/result")

' Same thing, but in background

SHELL "ls -la > /tmp/result" FOR READ

...

PUBLIC SUB Process_Read()

DIM sLine AS String

LINE INPUT #LAST, sLine
Content = Content & sLine

END


Отличия от VB

В отличие от VB Shell комманд, которые возвращают process ID и полагаются на то, что программист сделает API вызов для управления процессом, Gambas Shell функция опционно возвращает объект Process (если вызвается с параметром AS), который может быть использован для непосредственного уничтожения или иного управления порожденным процессом. Дополнительно процесс может быть запущен синхронно в противоположность VB эквиваленту.


Совет: Вы могли заметить, что все события Process запускают те же поддержки событий, именно Process_Read, Process_Kill и т.д. Вы можете различить процессы двумя путями:

  1. Сделать каждый объект Process глобальным для вашего класса и далее "IF LAST.Id = Process1.Id THEN..."
  2. Использовать Object.Attach для перенаправления его событий в различные наборы поддержки.

Предыдущее: Sgn Следующее: Shl