我有KSH脚本。
如果我使用./scriptname.ksh手动运行它,那么它将工作正常。
但是如果我设置了一个crontab作业,我会得到一个错误,即没有找到AQL。(AQL类似于SQL,但没有不同)。
这是我的脚本代码。

#!/usr/bin/ksh

AQL << EOF
select count(*) from <tableT>;
exit

这是crontab-e
12 13 * * * /usr/users/somedir/dir3/dir4/scriptname.ksh > /usr/users/somedir/dir3/dir4/testz.txt 2>&1

下面是crontab运行并输出到testz.txt的内容
/usr/users/somedir/dir3/dir4/scriptname.ksh: line 9: AQL: not found

最佳答案

AQL可能不在脚本执行环境的路径中。尝试使用到AQL的完全限定路径(例如/full/path/to/AQL)。一般来说,出于这个原因以及安全性的考虑,在脚本中指定完全限定的路径是一个很好的实践。

关于sql - 通过Crontab作业运行时,KSH脚本无法正确运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22360612/

10-15 22:41