【问题标题】:How do I make a Perl script stop when running Matlab code fails?运行 Matlab 代码失败时如何使 Perl 脚本停止?
【发布时间】:2012-08-14 01:35:08
【问题描述】:

我想让 Perl 脚本运行一些 Matlab 代码,然后等待,然后在 Linux 中运行另一个 Matlab 代码。如果 Matlab 代码失败,那么它应该给出一个错误信息。即使 Matlab 代码 1 或 2 有错误,下面的 Perl 脚本也会运行。当 Matlab 代码失败时,如何使 Perl 脚本停止并给出错误消息?

print("run Matlab code 1!\n");
`matlab -nodisplay -r myfile1`;

print("run Matlab code 2!\n");
`matlab -nodisplay -r myfile2`;

print("End!\n");

【问题讨论】:

    标签: linux perl matlab


    【解决方案1】:

    首先,存储你正在运行的命令的返回码:

    my $returnCode = system("matlab -nodisplay -r myfile1");
    

    然后,在进行下一步之前,请确保返回码为 0(或在您的情况下表明成功的任何值):

    if ($returnCode != 0) {
        die "Command did not finish successfully.";
    }
    

    只需确定什么是有效的返回码,并告诉脚本在任何其他情况下都死掉。

    【讨论】:

    • 要使用合理的错误消息启用自动错误处理,只需将use autodie qw(:all) 添加到该程序即可。阅读stackoverflow.com/a/3478060
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 2014-04-05
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    相关资源
    最近更新 更多