次のシェルスクリプトがあります。
#!/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
ありがとうございます!