SHELL : syntax error near unexpected token...

Fermé
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 - 16 juin 2007 à 18:17
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 - 16 juin 2007 à 20:40
Bonjour,

Lorsque je souhaite interpréter le code ci dessous, j'obtiens le message suivant : syntax error near unexpected token 'else' à la ligne qui correspond à l'avant dernier "else".

Ca fait un moment que je cherche, je ne trouve pas...

Voici le code :

############################################################

renameFiles()
{
local pDirectory=${kNullString}
local pSequenceToReplace=${kNullString}
local pNewSequence=${kNullString}
local pMinDepth=${kNullInteger}
local pMaxDepth=${kNullInteger}

local lListWithExtensions=${kNullString}
local lListWithPaths=${kNullString}
local lLine=${kNullString}
local lOldFile=${kNullString}
local lOldFileName=${kNullString}
local lNewFile=${kNullString}
local lNewFileName=${kNullString}
local lReturnCode=${kNoError}

local lNameOfTempFile=${kNullString}
local lTempFile=${kNullString}

begin ${FUNCNAME} $*


#
# Five parameters are required
#
if [ $# -ge 5 ]
then

pDirectory="$1"
pSequenceToReplace="$2"
pNewSequence="$3"
pMinDepth=$4
pMaxDepth=$5

if [ -d "${pDirectory}" ]
then

lNameOfTempFile="tempFileOf${FUNCNAME}Function.txt"
lTempFile=./${lNameOfTempFile}

#
# List files with the good sequence and rename them
#
lListWithExtensions=${kYes}
lListWithPaths=${kYes}

listFiles "${pDirectory}" "${pSequenceToReplace}" ${lListWithExtensions} ${lListWithPaths} ${pMinDepth} ${pMaxDepth} ${lTempFile}

if [ $? -eq ${kNoError}]
then
while read lLine
do
lOldFile="${Line}"
getFileName "${Line}"
lOldFileName="${gResultOfGetFileName}"

getFilePath "${Line}"
lFilePath="${gResultOfGetFilePath}"

lNewFileName=$(echo "${lOldFileName}" | sed 's/"${pSequenceToReplace}"/"${pNewSequence}"/g')
lNewFile="${lFilePath}/${lNewFileName}"

mv "${lOldFile}" "${lNewFile}"
done < ${lTempFile}

else if [ $? -eq ${kNoFile}]
then
raiseInformation ${FUNCNAME} "No file has been found."
else
raiseError ${FUNCNAME} "list of files may be wrong."
lReturnCode=${kError}
fi

#
# Remove temporary file
#
rm -f ${lTempFile}
else
raiseError ${FUNCNAME} "directory specified does not exist (or a file is specified)"
lReturnCode=${kError}
fi
else
raiseError ${FUNCNAME} "needs 5 parameters"
lReturnCode=${kError}
fi
end ${FUNCNAME}
}

############################################################

Comme je me suis dis que Jipicy allait être probablement dans le coin...

Merci d'avance

A+
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
16 juin 2007 à 18:56
Salut,

Si tu pouvais indenter ton code (sers-toi de la balise "code" pour ça) et le commenter surtout, se serait un peu plus lisible, parce que là, à vue de nez, y'a l'air d'avoir quelques incohérences dans la syntaxe "if...then...elif...then...elif...then...else...fi" et dans les espaces dans les tests "[ ... ]" (il faut un espace après le 1er crochet et avant le 2nd).

Affiche aussi le reste du script, qu'on sache à quoi correspondent les "codes retour" !?
0