2017-01-27 32 views
0

我試圖打開多個cygwin終端,並通過八度GUI在其中運行每個.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文件。

octave發生了什麼,最初一個cygwin終端打開並運行.exe文件。應用程序完成並退出後,cygwin終端關閉並打開下一個cygwin終端,並運行第二個.exe文件。我希望能夠一次運行4個cygwin終端,這是MATLAB中發生的事情,但不是以八度音程發生。

+0

您可以[安裝](http://wiki.octave.org/Octave_for_Microsoft_Windows )直接在cygwin上執行octave – rahnema1

回答

3

在Octave中,dos等待外部命令完成後再執行任何其他命令。

Octave等待外部命令完成,然後返回狀態中的程序退出狀態和文本中的任何輸出。

如果你想asyncronously評估外部命令,你應該使用system命令與'async'輸入參數

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

用'&'追加他的代碼似乎不起作用,使用帶有「異步」功能的系統。 –

+0

@AhishekSubramanian太棒了。更新。 – Suever

+2

根據命令,在MATLAB'system' [等待或者其他](http://stackoverflow.com/a/27933690/2586922) –