if [ $? -ne 0 ] then erreur de syntaxe alors inattendu

J'ai essayé de l'exécuter en shell script UNIX qui ne fonctionne pas.
Je suis en cours d'exécution par KornShell (ksh).

echo $?;
if [ $? -ne 0 ]
then
 failed $LINENO-2 $5 $6
fi
failed()
{
        echo "$0 failed at line number $1";
 echo "moving $2 to failed folder"
}

Ce est de donner un message d'erreur indiquant Syntax error:then unexpected.. Fondamentalement, je dois vérifier pour la dernière exécution script ksh plus haute/la dernière déclaration du code de retour et si elle n'est pas égale à zéro, je dois appeler la fonction a échoué avec les paramètres donnés. J'ai essayé de mettre un point-virgule avant mais qui ne fonctionne pas.

Pouvez-vous s'il vous plaît aider?

Edit1: sur la Base des contributions que j'ai changé de code. Toujours le même problème existe.

ksh ../prescript/Pre_process $1 $2 $3
rc=$?;
if [[ $rc -ne 0 ]];then
    echo "failed";
       exit 1;

Edit2:
C'est en travaillant pour la partie en utilisant un double carré de crochets. Je sens que j'ai utilisé le code de script bash pour ksh. Je suis face à problème dans l'appel de fonction de l'échec. S'il vous plaît laissez-moi savoir de manière appropriée de la fonction d'appel en ksh pour cet exemple

OriginalL'auteur Enjoy coding | 2010-08-31