我正在尝试做一份“at”工作。该作业位于 ~/mydir/first.sh 中。它使用位于同一目录中的 (sh secondary.sh) 执行 secondary.sh。我收到一条错误消息,指出找不到该文件。
这是非常不寻常的,因为我在另一台 Linux 笔记本电脑上做完全相同的事情并且没有任何问题。
答案1
创建at
作业时,系统会创建一个包含当前 shell 环境副本的文件。这包括PATH
变量。除非PATH
包含“ .
”作为条目之一,否则作业at
将失败,就像您尝试手动运行它一样。
你可以看到系统创建了什么,下面会有一个文件/var/spool/atjobs/
。
答案2
尝试在脚本中使用绝对路径引用,我发现这通常是 cronjobs 所需要的,并且我假设这同样适用于 at。
我无法将此添加为评论,我的声誉不够高。