Как получить возвращаемое значение из MATLAB function

У меня получилось.

Первая ошибка, которую я допустил - не экспортировал ORACLE_HOME и ORACLE_PATH в скрипте обработчика событий.

Вторая ошибка была в этой строке:

echo "ora123" |sqlplus sys@walinv as sysdba @this_file.sql

this_file.sql находился в \usr\local\nagios\libexec\eventhandlers. Когда я выполнял скрипт вручную из папки eventhandlers, файл this_file.sql был доступен. Nagios не выполняет его из этой папки. Когда я указал полный путь и заставил его работать.

1
24.05.2017, 22:12
1 ответ

Вы можете выйти из Matlab с помощью quitили exit. В основном они одинаковы, за исключением того, что с помощью exitвы можете указать код выхода. Если вы готовы злоупотреблять кодом выхода, вы можете сделать что-то вроде

matlab -nodesktop -nosplash -nodisplay -r "exit(times(2, 7));" > /dev/null; echo $?

Если вы собираетесь это сделать, имейте в виду, что bash может расстроиться из-за не-нулевых кодов выхода, и вам может потребоваться некоторая обработка ошибок, чтобы убедиться, что ваша функция возвращает код ошибки, который может обработать выход.

Другой вариант — захватить выходные данные Matlab, а затем проанализировать то, что вы хотите

matlab -nodesktop -nosplash -nodisplay -r "format compact; Answer=times(2, 7), exit" | sed -ne '/Answer =/{n;p}' | sed -e 's/ *//g'
0
28.01.2020, 00:55

Теги

Похожие вопросы