Как выйти из MATLAB, если синтаксическая ошибка в коде командной строки (опция -r) - PullRequest
0 голосов
/ 11 января 2019

Мне нужно запустить MATLAB в пакетном режиме и хотел бы перехватить все возможные ошибки. Следующий код

matlab -nojvm -nodesktop -nosplash -r "try, x=y; catch ME, disp(getReport(ME)); end; exit"

отлично работает и MATLAB корректно жалуется

Undefined function or variable 'y'.

Однако, для синтаксических ошибок, таких как этот

matlab -nojvm -nodesktop -nosplash -r "try, x:=y; catch ME, disp(getReport(ME)); end; exit"

Матлаб говорит

 try, x:=y; catch ME, disp(getReport(ME)); end; exit
        |
Error: Incorrect use of '=' operator. To assign a value to a variable, use '='. To compare values for equality, use '=='.
>> 

и приостанавливает в командной строке. Метод грубой силы, чтобы предотвратить это поведение

echo "exit" | matlab -nojvm -nodesktop -nosplash -r "try, x:=y; catch ME, disp(getReport(ME)); end; exit"

Есть ли более элегантный способ решить эту проблему? Благодаря.

MATLAB Версия: 9.5 (R2018b), ОС: Linux 4.12.14 (OpenSUSE)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...