我有以下 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
谢谢!