LFTPコマンドの外だし

シェルでLFTPでファイルを取得する必要があったので。

#!/bin/sh
echo "処理開始" >> result.log

# LFTP接続
lftp -f command.txt >> ftp.log

# ftp.logに先頭から始まる「abc*」がない場合
if ! grep "^abc*" ftp.log > /dev/null 2>&1; then

    # ftp.logの内容をresult.logに移し、ftp.logを初期化し、処理正常
    cat ftp.log >> result.log
    echo "処理終了(ファイルなし)" >> result.log
    cp /dev/null ftp.log
    exit 0

# ftp.logに先頭から始まる「abc*」がある場合
else

    # ftp.logの内の先頭から始まる「abc*」をgrepする
    for X in `grep "^abc*" ftp.log`
    do
        # ファイル名(grep結果)が取得できている場合(-eが存在確認)
        if [ ! -e $X ]; then

            # ftp.logの内容をresult.logに移し、ftp.logを初期化し、処理異常
            cat ftp.log >> result.log
            echo "ファイル転送エラー" >> result.log
            cp /dev/null ftp.log
            exit 1
        fi
    done
fi

# ftp.logの内容を初期化し、処理正常
echo "処理終了" >> result.log
cp /dev/null ftp.log
exit 0;
command.txtの内容
open IP
user ユーザ名 パスワード
cd /test
cls abc*.txt
mget abc*.txt

ftp.logは処理が終了すると0バイトに初期化するが、
処理中は下記状態となる。

【正常の場合(取得ファイルあり)】
abc1.txt
abc2.txt

【正常の場合(取得ファイルなし)】
ファイル取得エラー

【異常の場合】
abc1.txt
abc2.tx
ファイル転送エラー