다음 쉘 스크립트가 있습니다.
#!/bin/bash
matlab -nodisplay -nosplash -nodesktop -r "run('/home/username/test.m');exit;"
test.m 스크립트는 그래프를 그리고 그래프를 표시하지 않고 그래프를 pdf로 저장하는 matlab 스크립트입니다. test.m 스크립트의 내용은 다음과 같습니다.
% This is a matlab script to test with *at* execution.
t1=[1 2 3];
t2=[1 2 3];
plot(t1,t2)
set(gcf,'Visible','off')
print('-bestfit','/home/username/image','-dpdf')
내가 원하는 것은 특정 시간에 실행되도록 쉘 스크립트를 예약하는 것뿐입니다. 따라서 "at" 명령을 다음과 같이 사용합니다.
echo "run_matlab_script.sh" | at 15:00
그런데 시간이 15시에 도달하면 스크립트가 실행되지 않는 것 같습니다. 또한 스크립트 경로를 포함하려고 시도했지만 "at"이 작동하지 않았습니다.
또한 이 링크의 지침을 따랐습니다.
https://tecadmin.net/one-time-task-scheduling-using-at-commad-in-linux/
"at"을 올바른 방식으로 사용하고 있나요? 스크립트 실행을 예약하는 대안이 있습니까? 이렇게 하면 source run_matlab_script.sh
스크립트가 문제 없이 실행됩니다.
쉘 스크립트의 경우 다음 권한을 부여합니다.
chmod +x run_matlab_script.sh
감사해요!