wget.sh:第124行:语法错误:意外的文件结束

时间:2017-06-28 10:30:02

标签: bash

我遇到了一个无法解决的巨大问题。我为我的公司编写了一个应用程序,你可以看到我的代码由两个bash函数组成。 当我尝试编译时,我每次都得到相同的错误:wget.sh: line 124: syntax error: unexpected end of file n wget.sh是我的文件。而且我不知道为什么,我搜索了很多,而且似乎不是真正的语法错误,就像我在fi之后if。此外,我查看我的文件,123之后没有其他行... 请帮我解决这个问题!

#!/bin/bash


#----------------------------------------------------ApplicationTaxa----------------------------------------------------------
#------------------------------------------------Créateur:Axel Bonnafoux-------------------------------------------------------


#Projet conditions : Avoir le fichier build.Xml dans le dossier pour pouvoir éxecuter le code Java.



# ---------------------------------------------Projet partie 1 : Concaténation (bash)-------------------------------------------- 


Annee=$(date +%Y)
Mois2=$(date +%m)
Mot="init"
Mot2="maj"
Mot3="Facture"

# Creer un dossier Année
if [ ! -d taxa/$Annee  ]
then 
mkdir -p taxa/$Annee
fi

我没有功能运行它实际工作!帮助我知道原因

 #Fonction concat
 #Concatene les fichiers client récupérés sur serveur ftp
 Concat()
 {
 for Month in $F
 do
    # Créer un dossier Mois
 Mois=$(echo $FILES |cut -d '/' -f4 )
 mkdir -p taxa/$Annee/$Mois 

 # Parcour les fichiers disponibles et les concatene par Mois par client                            
 for Day in $Month'/*'
 do
    for file in $Day'/*'
    do
        filename1=$(echo $file |cut -d '/' -f6 )
        filename2=$(echo $filename1|cut -d '-' -f1|cut -d '_' -f1)

        # Si le fichier n'existe pas, on le créer et on copie son contenu
        if [ ! -e taxa/$Annee/$Mois/$filename2.csv ]
        then
            touch taxa/$Annee/$Mois/$filename2.csv
            cat  $file >> taxa/$Annee/$Mois/$filename2.csv

        # Concatene le nouveau fichier client avec l'ancien
        else 
            cat  $file |sed '1d' >> taxa/$Annee/$Mois/$filename2.csv
        fi
    done
done
done}   




#-----------------------------------------Projet partie 2 : Traitement des données (bash&&Java)------------------------------------------

#Fonction traitement
#Execute la partie javascript pour chaque fichier, somme les coûts et le temps passé des appels
Traitement()
{
for FILES2 in $F2
do 
#Récupération du Mois courant
Mois=$(echo $FILES2 |cut -d '/' -f4 )
for D in $FILES2'/*'
do
    #Création d'un fichier Excel par client
    filename1=$(echo $D |cut -d '/' -f6 )
    filename2=$(echo $filename1|cut -d '-' -f1|cut -d '_' -f1)
    touch taxa/$Annee/$Mois/$filename2.xls
    java -classpath Taxa2 WriteMatriceFG taxa/$Annee/$Mois/$filename2.csv taxa/$Annee/$Mois/$filename2.xls

    #Initialisation d'un tableau de Correspondance à remplir plus tard manuellement
    #Il contient les forfait et prix horaires pour chaque client
    touch TableauCorrespondance_$Mois.xls
    touch TableauCorrespondance_$Mois_2.xls
    java -classpath Taxa2 WriteMatricePrix     TableauCorrespondance_$Mois_2.xls filename2
    cat TableauCorrespondance_$Mois_2.xls >> TableauCorrespondance_$Mois
    rm TableauCorrespondance_$Mois_2.xls

    #Verifie que le nombre de ligne est correct et si le fichier est complet ( qu'il n'y ai pas de trou en somme)
    NF = $(ls *csv  | wc -l)
    nbligne=$(wc -l TableauCorrespondance_$Mois_2.xls|cut -d ' ' -f1)
    Res=java -classpath Taxa2 verification TableauCorrespondance_$Mois.xls
    if [$NF=$((nbligne*3)) && Res]
    then
        #Enfin, on calcule la facture que le client doit régler en fonction du tableau de correspondance qui doit être remplit.         
        java -classpath Taxa2 MatriceTreatment filename2.xls TableauCorrespondance_$Mois.xls
    else
        echo "votre tableau de correspondance nest pas complet"
    fi
done
done}


# récupère les données du serveur ftp si l'on a rien (avec l'option n), récupère seulement les données du mois avec l'option maj et traite seulement les données avec toutes les autres options
if  [ $1 = "$mot" ]     
then
wget -m --ftp-user=********* --ftp-password=********* ftp://ftp-openvno.alphalink.fr/valo/$Annee
F=ftp-openvno.alphalink.fr/valo/$Annee'/*'
Concat
else 
if [ -d taxa/$Annee/$Mois2 ] && [ $1 = "$Mot2" ]
then
    rm -r taxa/$Annee/$Mois2
    wget -m --ftp-user=*********** --ftp-password=******** ftp://ftp-openvno.alphalink.fr/valo/$Annee/$Mois2





F=ftp-openvno.alphalink.fr/valo/$Annee'/*'
    Concat
else 
    F2=taxa/$Annee'/*'
    Traitement
fi
fi
#supprime les fichiers téléchargés devenu obsolète
rm -r ftp-openvno.alphalink.fr
exit 0

1 个答案:

答案 0 :(得分:0)

由于脚本中任何语句的关闭不正确,这种情况很可能会发生。如评论中所述,您可以将脚本粘贴到shellcheck.net以获取一些有用的报告。