IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

script bash: unexpected EOF while looking for matching `"'


Sujet :

Shell et commandes POSIX

  1. #1
    Membre averti
    Homme Profil pro
    Professeur de Mathématiques
    Inscrit en
    Janvier 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Professeur de Mathématiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 15
    Par défaut script bash: unexpected EOF while looking for matching `"'
    Bonjour,

    Je suis nouveau dans le scripting bash. j'ai essayé de faire un script simple pour automatiser des sauvegardes regulières. Mais il me met une erreur et je n'ai pas réussi à trouver pourquoi. Le but est de transférer l'ancienne sauvegarde dans un nouveau dossier avec la date et de faire la nouvelle dans un dossier appelé Latest.
    Quand je l'execute, je le teste en tapant o au premier moment où on me demande. Il me renvoie "Vous avez répondu: o", puis ensuite il me donne l'erreur:

    ./reg-backup.sh: line 28: unexpected EOF while looking for matching `"'
    ./reg-backup.sh: line 30: syntax error: unexpected end of file
    Note: j'ai mis pas mal d'instructions pour demander si on veut continuer juste pour que je puisse regarder pas à pas et m'assurer qu'il ne fasse pas autre chose que ce que je veux.

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    #!/bin/bash
     
    echo "Veuillez confirmer le désir de faire une sauvegarde (o/n)"
    read reponse
    echo "Vous avez répondu: $reponse "
    if [ "$reponse" != "o" ];
    then
      echo "Très bien, fin du programme"
    else
      echo "Début du processus de sauvegarde"
      now=$(date +"%d_%m_%Y")
      echo "File name to store last backup: OldBackUp_$now"
      echo "Continuer? (o/n)"
      read reponse2
      if [ "$reponse2" != "o" ];
      then
        exit 1
      fi
      mkdir "../../Volumes/DISQUE ESSB/BackUpMac2025/OldBackUp_$now"
      cp -a "../../Volume/DISQUE ESSB/BackUpMac2025/Latest/." "../../Volume/DISQUE ESSB/BackUpMac2025/OldBackUp_$now/"
      echo "Vérifier qu'il n'y a aps d'erreur. Si continuer, tapez o"
      read reponse3
      if [ "$reponse3” != "o" ];
      then
        exit 1
      fi
      rsync -rtcvP --stats --modify-window=1 ./Documents/ "../../Volumes/DISQUE ESSB/BackUpMac2025/"
    fi

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut
    Bonjour,

    tu as probablement fais un copier/coller d'un caractère qui n'est pas précédé de son binôme ( au lieu de ") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if [ "$reponse3” != "o" ];
    à part ça,
    • numéroter les réponses n'est pas indipensable; tu pourrais très bien ne pas indiquer de nom de variable, et utiliser la variable par défaut REPLY.
    • tu pourrais aussi limiter le nombre de caractères saisis avant que la réponse soit valider : read -n 1, dans ton cas.
    • il est préférable, dans un script, de toujours utiliser des chemins absolus, ainsi, d'où que soit exécuté le script, les chemins seront valides.
    • les données redondantes (comme les chemins) doivent être mises dans des variables afin de n'avoir à les modifier qu'à un seul endroit (ça évite les coquilles).



    au fait, quel Unix utilises-tu ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Professeur de Mathématiques
    Inscrit en
    Janvier 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Professeur de Mathématiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 15
    Par défaut
    Merci beaucoup pour ta réponse et tes conseils (je débute complétement, donc j'apprécie!).

    J'utilise MacOS, qui est nouveau pour moi. J'utilisais Windows avant.

    Par contre, j'ai regardé sur le code, remplacé les deux guillements, et l'erreur reste toujours là. Je ne sais pas pourquoi la deuxième sorte de guillements est apparu quand j'ai copié collé ici.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 640
    Par défaut
    copie-nous la version corrigée du script, ainsi que le message d'erreur.

    edit: es-tu sûr d'avoir corrigé et exécuté la même version du script ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Homme Profil pro
    Professeur de Mathématiques
    Inscrit en
    Janvier 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Professeur de Mathématiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2020
    Messages : 15
    Par défaut
    Oups, ça marche à présent.... Je n'avais pas remplacé les “ au bon endroit. Toutes mes excuses pour le bruit inutile avec mon dernier message, et merci beaucoup pour ton aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Son dans un script bash
    Par clodette0071 dans le forum Linux
    Réponses: 2
    Dernier message: 09/07/2008, 12h27
  2. affichage de printf dans un script bash
    Par kass28 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 19/03/2008, 21h36
  3. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  4. exit dans un script bash
    Par yann_m dans le forum Linux
    Réponses: 2
    Dernier message: 08/11/2007, 23h37
  5. [Débutant]Intégrer du perl dans un script bash
    Par kromartien dans le forum Langage
    Réponses: 3
    Dernier message: 05/03/2007, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo