2012-08-29 68 views
0

下面的腳本直接在shell上執行時正常工作,但通過cronjob執行時會出錯。通過cron作業執行腳本時出現問題

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 

出於某種原因,LS在for循環是無法解釋的嵌入式「*」。

關於可能出錯的任何想法。

感謝您的幫助。

回答

3

當您從cron運行時,當前工作目錄(CWD)是不同的。在腳本中,您可能需要先將cd放入目錄中。

+0

謝謝..就是這樣。 – user1631261

+0

@ user1631261,好消息。所以你可能想接受這個答案。 – Rohan