Erreur Script Bash

Résolu
Bonjour,

Pourriez vous svp m'aider a deboguer un petit script de Mise a jour, j'ai une erreur lorsque que je tente de l'executer :


#!/bin/bash

cond='true'

echo "Bienvenue dans le script de Mise a jour !"

# On se met dans le rep. du script

cd /home/abcd-server/Bureau

# On verifie que l'on est en root

if [ $EUID -ne 0 ]; then


        echo "Veuillez vous connecter en Super-Utilisateur (Commande su dans le terminal)"
        exit
fi

# On lance la boucle, on n'en sort que si l'entrée est valide

while [ $cd = "true" ]; do

read -p ' Bienvenur Super-User. Voulez vous lancer mises a jour ? [O/N] ' -n 1 choix

if [ $choix = "n" ] || [ $choix = "N"]; then

        echo "Abandon"
        cond='false'

# l'utilisateur repond non avec "n" ou "N" cond passe a false et on sort de la boucle


elif [ choix = "o" ] || [ $choix = "O"]; then


        echo" "Lancement de YUM..."
        echo "Mise a jour des logiciels"
        yum upgrade
        echo "terminé"
        cond='false'
# l'utilisateur repond oui avec "o" ou "O" cond passe a false et on sort de la boucle

else

     echo "ERREUR"

# l'utilisateur repond n'importe quoi cond reste a true et on repart a la saisie

fi

done

# fin du if et du while et du script



Quand je l'execute, le terminal me renvoi :

  

./Script Mise a Jour2.sh: ligne46: Caractère de fin de fichier (EOF) prématuré lors de la recherche du « " » correspondant
./Script Mise a Jour2.sh: ligne55: Erreur de syntaxe : fin de fichier prématurée


Quelqu'un a une idée ? Merci pour votre aide !

3 réponses

  1. Contributeur
    Salut,

    Ligne 37 :
    echo" "Lancement de YUM..."
    il y a un guillemet de trop ;-(
    0
    1. Modérateur
      Salut,

      Peut être parce qu'en 37 tu as une " en trop juste derrière echo.

      cdlt

      ps : la coloration syntaxique sur CCM n'est pas si mauvaise ;-)

              Un étranger, c'est un ami qu'on n'a pas encore rencontré.
      0
      1. Autant pour moi, la couleur m'a bien aidé ! ( Ahlala ecrire des scripts dans vim me reussi décidement pas ! )
        Voici le script corrigé (car bourré d'erreurs !)

        
        #!/bin/bash
        
        cond='true'
        
        echo "Bienvenue dans le script de Mise a jour !"
        
        # On se met dans le rep. du script
        
        cd /home/abcd-server/Bureau
        
        # On verifie que l'on est en root
        
        if [ $EUID -ne 0 ]; then
        
        
                echo "Veuillez vous connecter en Super-Utilisateur (Commande su dans le terminal)"
                exit
        fi
        
        # On lance la boucle, on n'en sort que si l'entrée est valide
        
        while [ $cond = 'true' ]; do
        
        read -p ' Bienvenur Super-User. Voulez vous lancer mises a jour ? [O/N] ' -n 1 choix
        
        if [ $choix = "n" ] || [ $choix = "N" ]; then
        
                echo "Abandon"
                cond='false'
        
        # l'utilisateur repond non avec "n" ou "N" cond passe a false et on sort de la boucle
        
        
        elif [ $choix = "o" ] || [ $choix = "O" ]; then
        
        
                echo "Lancement de YUM..."
                echo "Mise a jour des logiciels"
                yum upgrade
                echo "terminé"
                cond='false'
        # l'utilisateur repond oui avec "o" ou "O" cond passe a false et on sort de la boucle
        
        else
        
            	echo "ERREUR"
        
        # l'utilisateur repond n'importe quoi cond reste a true et on repart a la saisie
        
        fi
        
        done
        
        # fin du if et du while et du script
        
        
        


        Désolé pour ce topic inutile, il m'aurrait suffit d'avoir un éditeur plus coloré !

        Cordialement
        0
        1. Contributeur
          Pour la coloration syntaxique dans vi/vim : http://www.zenzla.com/astuces/335-vi-coloration-syntaxique.html
          0
        2. Merci beaucoup !
          0