我遇到了一个无法解决的巨大问题。我为我的公司编写了一个应用程序,你可以看到我的代码由两个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