2017-01-27 7 views
0

Я пытаюсь открыть несколько терминалов cygwin и запустить файл .exe в каждом из них через октавный графический интерфейс. Я смог сделать это в MATLAB, но тот же самый код в октаве не работает. код используется:Запуск нескольких внешних команд сразу в Octave

dos(['C:\cygwin64\bin\mintty.exe /bin/bash -login ./testtorun_ig1_1.sh']); 
dos(['C:\cygwin64\bin\mintty.exe /bin/bash -login ./testtorun_ig1_2.sh']); 
dos(['C:\cygwin64\bin\mintty.exe /bin/bash -login ./testtorun_ig1_3.sh']); 
dos(['C:\cygwin64\bin\mintty.exe /bin/bash -login ./testtorun_ig1_4.sh']); 

testtorun_ig1_1 имеет команду, чтобы открыть файл с расширением .exe.

Что происходит в октаве, изначально один терминал cygwin открывается и запускает .exe-файл. После завершения и завершения приложения терминал cygwin закрывается и открывает следующий терминал cygwin и запускает второй файл .exe. Я хочу иметь возможность запускать 4 терминала cygwin за один раз, что и происходит в MATLAB, но не в октаве

+0

Вы можете [установить] (http://wiki.octave.org/Octave_for_Microsoft_Windows) Octave прямо на cygwin – rahnema1

ответ

3

В Octave dos ждет, пока внешняя команда не завершит выполнение дополнительных команд.

Октава ждет завершения внешней команды перед возвратом статуса выхода программы в состояние и любой вывод в тексте.

Если вы хотите, чтобы оценить внешние команды асинхронными, вы должны использовать команду system с 'async' входного аргументом

id = system('C:\cygwin64\bin\mintty.exe /bin/bash -login ./testtorun_ig1_1.sh', 0, 'async') 
+0

Добавление кода с помощью '&', похоже, не работает, используя системы с «async». –

+0

@AbhishekSubramanian Great. Обновлено. – Suever

+2

Взволнованно, в MATLAB 'system' [ждет или иначе] (http://stackoverflow.com/a/27933690/2586922) в зависимости от команды –

 Смежные вопросы

  • Нет связанных вопросов^_^