有问题通过cron作业执行脚本

时间:2012-08-29 05:42:59

标签: bash shell

直接在shell上执行脚本时工作正常,但是当通过cronjob执行时错误输出。

bash-3.00$ cat scr.sh 
#!/usr/local/bin/bash
DATE=$(date +%g%m%e)
INPUT_FILES=$DATE"_*.txt"
ALL_FILES=$DATE"*.txt"
echo INPUT=$INPUT_FILES
echo FILES=$ALL_FILES
for i in $(ls $INPUT_FILES); do echo $i; done

直接执行时工作正常。

通过crontab安装相同的并执行时,我收到以下错误消息:

INPUT=120828_*.txt
FILES=120828*.txt
ls: 120828_*.txt: No such file or directory

由于某种原因,for循环中的ls无法解释嵌入的'*'。

关于可能出错的任何想法。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

当您从cron运行时,当前工作目录(CWD)是不同的。在脚本中,您可能希望先cd进入目录。