0

シェルで直接実行した場合の次のスクリプトは正常に機能しますが、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

何らかの理由で、forループのlsは埋め込まれた「*」を解釈できません。

何がうまくいかないかについてのアイデア。

助けてくれてありがとう。

4

1 に答える 1

3

CWDcronから実行すると、現在の作業ディレクトリ( )が異なります。スクリプトでは、最初cdにディレクトリに移動することをお勧めします。

于 2012-08-29T05:45:50.363 に答える