使用多个if-then语句

时间:2015-04-13 12:43:12

标签: bash

为了使我的问题更精确,这是我的脚本。意外的文件结束错误。有人可以指出我所缺少的东西。

#!/bin/bash
set -x
#
DZHOST='XX.XX.XX.XXX'
DZUSER='ftpuser'
DZSPASS='Ftppass'
DSHOST='XX.XX.XXX.XXX'
DSUSER='userftp'
DSPASS='passftp'
#

DNASN='/home/dsmn/ASN'
{
if [ "$(ls -A $DNASN)" ];
    then
    ftp -n -u $DZSHOST <<-ASN_END
     quote USER $DZUSER
     quote PASS $DZPASS
     prompt
     cd /home/DS/PROD/Import/ASN
     lcd ASN
     bin
     mput *.*
     bye
    ASN_END
    cp $DNASN/*.* ./backup/
fi
}

DNGRA='/home/ds/GRA'
#{
#if [ "$(ls -A $DNGRA)" ];
#        then
#        ftp -n -u $DSHOST <<-GRA_END
#         quote USER $DSUSER
#         quote PASS $DSPASS
#         prompt 
#         cd GRA
#         lcd GRA
#         bin
#         mput *.*
#         bye
#        GRA_END
#        cp $DNGRA/*.* ./backup/
#fi
#}
DNGRB='/home/ds/GRB'
{
if [ "$(ls -A $DNGRB)" ];
    then
    ftp -n -u $DZHOST <<-GRB_END
     quote USER $DZUSER
     quote PASS $DZSPASS
     prompt
     cd /home/DS/PROD/Import/GRB
     lcd GRB
     bin
     mput *.*
     bye
    GRB_END
    cp $DNGRB/*.* ./backup/
fi
}

由于ftp访问尚未最终确定,因此会对某些部分进行注释。由于机密性,我不得不更改目录名称,所以如果存在不一致,我会道歉。 我得到这个指向脚本结尾的错误。 语法错误:意外的文件结尾

非常感谢新手。

1 个答案:

答案 0 :(得分:0)

当然,您可以根据需要在脚本中包含尽可能多的if语句。你甚至可以嵌套if。

然而,case语句可能会使您的代码更清晰......

您可以尝试循环浏览文件夹并使用大小写来决定如何处理每个文件夹。