0

直接在 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 无法解释嵌入的“*”。

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

谢谢您的帮助。

4

1 回答 1

3

CWD从 cron 运行时,当前工作目录 ( ) 会有所不同。在脚本中你可能要先cd进入目录。

于 2012-08-29T05:45:50.363 回答