- 締切済み
ダウンロード完了したファイルを削除したい
いつもお世話になっております。 あるファイルをダウンロードが完了した時点で削除するシェルを作成したいのです。 *********************************************************** OUTFILE="home/user/aaa.txt" SQLPLUS="home/***/*** -s scott/tiger" $SQLPLUS << eof >>$OUTFILE select ファイル名 from テーブル名 where c_status='DL完了'; #上のSQLで取得したファイル名を代入 SEL_TXT=`cat $OUTFILE` #ファイル名をの数を取得して代入 linecount=`cat $SEL_TXT |wc -l` #ファイル名数分FOR文で回す for ((i=1;i<=linecount;i++)) do #ここでファイルを検索 if (-e $SFILE$OUTFILE) then #ファイルを削除 rm $SFILE$SEL_TXT fi exit eof done *********************************************************** 何故かエラーが表示されないので、どこが原因で動かないのか分かりません。 FOR文の使い方が悪いのか、IF文がおかしいのか、どなたか教えていただけますでしょうか。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- justraver
- ベストアンサー率30% (62/201)
どこにダウンロードがあるの? SQL*PLUSってOracleですよね? ダウンロードしたファイル名をオラクルに格納してあるって事でしょうか? SQL*Plusにこのファイルの下の方まで渡していますが(”eof”までなので) DML文ではない(IF文など)物が渡されてもオラクルは理解できませんよ。 $OUTFILE にエラーメッセージごと出力されていませんか? シェルについては SEL_TXTからファイル名を取り出している部分が見つけられないのですが。 echo $SEL_TXT でどういう形でファイル名が入っているか確認してください。 書いたままを見ると ファイル名 ------------------ xxxxxx.xxx xxxxx.xxx xxxxxxxx.xx selected 3 record こんな感じでしょうかね?先ず、”ファイル名”でそんなファイルはないというエラーになるでしょうね。"------------------"も同じく $SFILE は、対象のファイルが入っているディレクトリが入っているという解釈で良いですかね? そこのディレクトリしか対象にしない? ん~~、突っ込みどころが多くてよく分かりません。
お礼
ファイルはフォルダに格納してあります。 SFILEがそのフォルダになります。 >$OUTFILE にエラーメッセージごと出力されていませんか? OUTFILEはdev/nullでフォルダを初期化しています。一時ファイルのような形で作ったのですが・・。