Результат выполнения Matlab (Linux) как задания Cron в Bash включает в себя много ">>" в электронном письме - PullRequest
0 голосов
/ 01 августа 2020

Я запускаю сценарий Matlab на Linux (RedHat Enterprise Linux RHEL 7.6, 64-разрядная версия) в качестве задания cron. Я не являюсь администратором этого компьютера, поэтому я использую crontab -e для планирования работы. Установленная версия Matlab - 2018b. Электронное письмо, которое я получаю после выполнения, включает пару >> в начале и в конце, что меня немного раздражает.

Вот пример электронного письма:

MATLAB is selecting SOFTWARE OPENGL rendering.

                            < M A T L A B (R) >
                  Copyright 1984-2018 The MathWorks, Inc.
                   R2018b (9.5.0.944444) 64-bit (glnxa64)
                              August 28, 2018

 
To get started, type doc.
For product information, visit www.mathworks.com.
 
>> >> >> >> 
Matlab started: 2020-07-31 21:50:26.
>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 
Going to update from 2015-01-01 00:00:00 UTC to 2015-12-31 23:00:00 UTC. 

[...]

>> Matlab closes: 2020-07-31 23:26:41. 
>> 

соответствующие строки в начале сценария Matlab выглядят точно так:

close all
clearvars
% profile on % to check performance
fprintf('\nMatlab started: %s.\n', char(datetime()))

%% Database user parameters
% connects always to the soecified database on "localhost"
DB_conn_name = 'abc';
DB_username = 'def';
DB_password = 'ghi';

% Add path and subfolders
if isunix
    addpath(genpath('/project/abc'));
elseif ispc
    addpath(genpath('C:\Branches\abc'));
end

% Change working folder
if isunix
    cd /project/abc
elseif ispc
    cd C:\Branches\abc
end

% Add database driver to path
javaaddpath JDBC_driver/mysql-connector-java.jar % Forward slashes within Matlab work even on Windows

% Set default datetime format
datetime.setDefaultFormats('default','yyyy-MM-dd HH:mm:ss')


%% Begin and end of update period
% now_UTC = datetime('now','TimeZone','UTC');
% time_2 = datetime(now_UTC.Year, now_UTC.Month, now_UTC.Day-1, 22, 0, 0); % Set the end time not too late, otherwise, some data might not yet be available for some areas leading to ugly "dips" in Power BI.

% During each update, we update e.g. the past 30 days
% datetime_month_delay = time_1 - days(30);

% Override automatic dates obtained below, for testing purposes
% time_1 = datetime(2020,1,1,0,0,0);
% time_2 = datetime(2020,2,1,23,0,0);

% Updating several years, one at a time
for iYear = 2015:2019
    time_1 = datetime(iYear,1,1,0,0,0);
    time_2 = datetime(iYear,12,31,23,0,0);

    fprintf(['\nGoing to update from ',char(time_1),' UTC to ',char(time_2),' UTC. \n'])

[...]

Похоже, что каждая строка, которая находится за пределами for l oop, создает пустую строку и, следовательно, такую ​​>> подсказка в выводе. Также виден в конце (сюда не входит).

crontab -e выглядит следующим образом:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=<my email address>
HOME=/project/abc
HTTP_PROXY=<proxy address>:8086
HTTPS_PROXY=<proxy address>:8086

# Run script regularly: minute hour day month dayofweek command
# No linebreaks allowed

15 2 * * * ~/script.sh

Сценарий оболочки script.sh выглядит так:

#!/bin/bash

/prog/matlab2018b/bin/matlab -nodesktop < ~/git-repos/abc/matlabscript.m

Кто-нибудь знает, что мне нужно изменить, чтобы избавиться от этих >>? Это было бы прекрасно! Заранее спасибо!

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