如何正确使用Linux“at”命令来执行运行matlab脚本的shell脚本?

如何正确使用Linux“at”命令来执行运行matlab脚本的shell脚本?

我有以下 shell 脚本:

#!/bin/bash
matlab -nodisplay -nosplash -nodesktop -r "run('/home/username/test.m');exit;"

test.m 脚本是一个 matlab 脚本,用于绘制图形并将图形保存为 pdf,但不使图形可见。以下是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')

我想做的就是安排 shell 脚本在特定时间运行。因此我使用“at”命令如下:

echo "run_matlab_script.sh" | at 15:00 

但是当时间到 15:00 时,脚本似乎没有被执行。我也尝试过包含脚本的路径,但没有“at”工作。

我也一直遵循此链接中的说明:

https://tecadmin.net/one-time-task-scheduling-using-at-commad-in-linux/

我使用“at”的方式正确吗?是否有替代方案来安排脚本的执行。当我这样做时,source run_matlab_script.sh脚本运行没有问题。

对于 shell 脚本,我授予它权限:

chmod +x run_matlab_script.sh

谢谢!

相关内容