Rechercher : dans
Par :

SHELL : syntax error near unexpected token...

Dernière réponse le 3 jun 2008 à 04:13:06 jax54000, le 16 jun 2007 à 18:17:37 
 Signaler ce message aux modérateurs

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+

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « SHELL : syntax error near unexpected token... » dans :
Parse error: syntax error, unexpected $end Voir Lorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur: Parse error: syntax error, unexpected $end in Command line code on line 1 En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une...
PHP Parse error: unexpected '&lt;' in ... eval()'d code on l VoirSymptômes Lors de l'utilisation de la fonction eval() en PHP, ce dernier se plaint et vous affiche un message de la forme suivante : PHP Parse error: syntax error, unexpected '
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :

1

jipicy, le 16 jun 2007 à 18:56:52

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" !?
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

thorn, le 16 jun 2007 à 19:19:54

Salut,
en effet essaie de remplacer else if par elif dans
" else if [ $? -eq ${kNoFile}]
then..."
je crois que tu crées un if en trop et l'interpreteur te reclame un fi

Répondre à thorn

3

 jax54000, le 16 jun 2007 à 20:40:49

Jipicy désolé pour l'indentation je n'avais pas vu... copier coller

alors effectivement c'était le problème du else if à tranformer en elif plus je pense un problème d'espace avant le crochet fermant de la cnodition.

Merci à vous, yeux de lynx.

A+

Répondre à jax54000