【发布时间】:2012-02-08 02:27:54
【问题描述】:
最近我创建了一个我应该在 cron 中运行的 bash 脚本。
在准备好 bash 脚本并使其正常工作后,我将其放入 Cron 中,发现它失败了。作为第二步,我删除了所有环境依赖项,即我指定了file.txt 而不是/home/blah-blah/file.txt
我仍然发现脚本仍然有一步失败。该步骤是一个数据处理工具。
我执行的命令是/bin/blah-blah/processing_tool -parameter $INDEX,其中$INDEX 是在bash 脚本中计算的变量。
第三步是在 bash 脚本的开头添加 bash 配置文件作为源。瞧!!!!脚本从 cron 开始完美执行。
我的问题是为什么即使在我从脚本中删除了所有环境依赖项之后也会发生这种情况。此外,我听说不建议将 cron 作业采购到 bash 配置文件。如果是这样,有没有其他方法可以避免这样做。
【问题讨论】:
-
你可能错过了什么。尝试
set -eu查找问题。使用set -x进行调试输出。有关说明,请参阅help set。 -
"bash 配置文件到脚本的开头" 或 #!/bin/bash 到脚本的开头?
-
@Sriram : #!/bin/bash 已添加。一行“source .profile”解决了这个问题。我想知道为什么。 @Ceving:我已经尝试过使用 set -x 进行调试。但是没有看到任何明显的差异。会再试一次。