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 GNU Discussion :

Problème Script shell


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut Problème Script shell
    Bonjour tout le monde,
    Voilà j'ai un petit problème je dois dans le cadre d'un projet scolaire développer un petit script shell avec un menu proposant d'installer et de configurer plusieurs services sauf que voilà je voudrais a la fin de l'installation de mysql demander a l'utilisateur si il veut lancer mysql sauf que le if ne marche pas voici mon 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
    30
    31
    32
    #Permet l'installation du service Mysql
    mysql(){
     
        echo "Installation du Service Mysql"
        sudo yum -y install mysqld
    # Pour une installation debian décommenter
    # apt-get install mysqld
     
        echo "Installation finie"
     
        echo "Lancement du service Mysql"
        systemctl start mysqld
        echo "Service lancé"
     
        read -p "Voulez vous lancer la console SQLl ? (o/n)" choix
     
    if [$choix == "o"] && [$choix == "oui"] &&
          [$choix == "y"] && [$choix == "yes"]
     then
       mysql -uroot -p
     
       else
       affiche_menu2
     
    #Pour debian/fedora uncomment
    # mysql -uroot -p
     
    #   echo 'Demarrage de Mysql'
     
       read
      fi
    }
    Merci beaucoup !

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

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

    [Ça] ne marche pas
    ça ne nous dit rien sur les circonstances du non-fonctionnement : il y a un message d'erreur ?

    • il faut des espaces autour des crochets.
    • == n'est pas POSIX : quel interpréteur de commandes utilises-tu ?
    • systemctl n'est apparemment pas sur Debian.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut
    Pour le moment je suis sur Mac car je n'ai pas sous la main mon autre ordinateur sous fedora, effectivement systemctl c'est pour fedora car mon script doit pouvoir fonctionner sous plusieurs distributions.
    Le message d'erreur est le suivant :

    Voulez vous lancer la console SQLl ? (o/n)o
    service.sh: line 62: [o: command not found

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par bombers Voir le message
    Le message d'erreur est le suivant :

    Voulez vous lancer la console SQLl ? (o/n)o
    service.sh: line 62: [o: command not found
    Il dit qu'il ne trouve pas de commande nommée "[o", qui est le résultat de l'expansion de [$choix.

    La "commande" "[" est un piège notoire.
    C'est une sorte de raccourci pour "test".
    Et elle doit être séparée de ses arguments par une espace:

    Donc remplace if [$choix == "o"] par if [ "${choix}" = "o" ] et ça devrait aller mieux...

    Rq: dans ce genre de test, on utilise volontiers case plutôt que if+test

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut
    Merci pour vos réponse malheureusement avec le if cela ne passe pas, comment le faire avec un case je ne vois pas vraiment
    Merci beaucoup

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    cela ne passe pas
    c'est comme
    ça marche pas
    ça ne veut rien dire.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par bombers Voir le message
    malheureusement avec le if cela ne passe pas,
    Essaie de le corriger pour que ça passe!
    Par exemple, remplace ce que tu as écrit par autre chose en fonction du message d'erreur ou du comportement observé.

    comment le faire avec un case
    Fais-le comme avec n'importe quel case!

    Et n'hésite pas à relire les réponses précédemment données!
    (sinon on va t'appeler bomonde...)

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par bombers Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #Permet l'installation du service Mysql
    mysql(){
    ...
    if [$choix == "o"] && [$choix == "oui"] &&
          [$choix == "y"] && [$choix == "yes"]
     then
      ...
      fi
    }
    Tu testes si "$choix" est, à la fois, égal à "o" et également égal à "oui" et également égal à "y" et également égal à "yes"...

    Y a un truc...

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 57
    Par défaut
    Oui je viens de corriger cette erreur j'ai remplacer par des "Ou" mais cela ne marge toujours pas

  10. #10
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 339
    Par défaut
    Bonjour,

    Prendre en compte les remarques de N_BaH (surtout la première)

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

Discussions similaires

  1. script shell: problème avec le caractère espace
    Par Le fut dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/05/2017, 11h49
  2. problème script shell
    Par ben_tiba_asma dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 22/10/2011, 18h12
  3. Problème Script SHell
    Par foxrol dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 21/10/2011, 19h02
  4. problème script shell
    Par joelulrich dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 09/12/2010, 18h14
  5. problème script shell
    Par jeje69 dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 09/01/2008, 14h30

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