33

私はこれを実行しようとしています: sftp にある md5sum ファイルのテスト ファイルがあります。変数には md5sum (文字列) が含まれている必要があります。変数が空の場合は、sftp サーバーにファイルがないことを意味します。私はこのコードを試していますが、うまくいきません..

    if [ -z $I_IDOCMD5 ] || [ -z $I_LEGALMD5 ] || [ -z $I_ZIPMD5 ]
then
        echo "ERROR: At least one file not present of checksum missing no files will be deleted" >>$IN_LOG
        ERRORS=$ERRORS+2
else
 if [[ $I_IDOCMD5 == $($DIGEST -a md5 $SAPFOLDER/inward/idoc/$I_IDOC) ]]
   then
        echo "rm IDOC/$I_IDOC" >/SAP/commands_sftp.in
   else
        echo "problem with checksum"
        ERRORS=$ERRORS+2
 fi

 if [[ $I_LEGALMD5 == $($DIGEST -a md5 $SAPFOLDER/inward/legal/$I_LEGAL) ]]
   then
        echo "rm LEGAL/$I_LEGAL" >>/SAP/commands_sftp.in
   else
        echo "problem with checksum"
        ERRORS=$ERRORS+2
 fi

 if [[ $I_ZIPMD5 == $($DIGEST -a md5 $SAPFOLDER/inward/zip/$I_ZIP) ]]
   then
        echo "rm ZIP/$I_ZIP" >>/SAP/commands_sftp.in
   else
        echo "problem with checksum"
        ERRORS=$ERRORS+2
fi
4

6 に答える 6

3

最初にこれだけをテストします(絞り込むためだけに):

if [ -z "$I_IDOCMD5" ] || [ -z "$I_LEGALMD5" ] || [ -z "$I_ZIPMD5" ]
then
    echo "one is missing"
else
    echo "everything OK"
fi

echo "\"$I_IDOCMD5\""
echo "\"$I_LEGALMD5\""
echo "\"$I_ZIPMD5\""
于 2013-11-07T14:30:07.670 に答える
0

「変数が空の場合、sftp サーバーにファイルがないことを意味します」

sftp サーバーにファイルがない場合変数は本当に空ですか?

隠しスペースなどはありませんか?または数字のゼロ(空ではないものとしてカウントされます)?

于 2013-11-08T00:12:13.330 に答える