在后台运行系统,并在完成后打印到命令窗口

24次观看(最近30天)
詹姆斯·泰勒
詹姆斯·泰勒 2021年5月18日
回答: 2021年5月18日
你好。在狂欢中,我可以跑步
{回声“开始”;睡觉15;回声“完成”}&
这将在后台运行,但仍在15秒后“完成”。我发现在MATLAB中使用System()时,这是不起作用的 - 最终打印未输出。
这是一个简单的示例,但实际上我正在运行Bash的程序,该程序需要很长时间才能完成,我希望在MATLAB命令窗口中有一个指示。完成

答案(1)

扬
2021年5月18日
我不确定这是否有效:您可以让计时器检查Java.exec调用的过程是否已经被列出:
%[未经测试的代码!]
runtime = java.lang.runtime.getRuntime();
proc = runtime.exec(“您的外部功能”);
TIMERH =计时器('timerfcn',{@checkprocesscb,'查看'},,...
'stopfcn',{@checkprocesscb,'停止'},,...
'startDelay',10,...
“ busymode',,,,'降低',,,,...
'executionMode',,,,“固定空间”,,,,...
'时期',10,...
'用户数据',Proc);
开始(Timerh);
暂停(100);
停止(Timerh);%也杀死了该过程
功能CheckProcessCB(Timerh,EventData,CMD)
proc = timerh.userdata;
转变CMD
案子'查看'
尝试
rc = proc.exitValue();
fprintf('外部功能已退出:\ n');
DSIP(RC)
抓住%流程仍在运行
结尾
案子'停止'
fprintf(2,“停止外部进程\ n”);
proc.destroy();
结尾
结尾
推动浪费了一些时间,但是每10秒钟打电话一次应该是公平的

社区寻宝

在Matlab Central中找到宝藏,发现社区如何为您提供帮助!

开始狩猎!