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 avec mon script


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    BTS SIO
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut Problème avec mon script
    Bonjour , lorsque je fais mon script , j'ai comme message d'erreur après d'avoir entrer mon choix
    "./exercice4: 13: ./exercice4: Syntax error: "(" unexpected (expecting "fi")"

    Voila mon script
    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
    #!/bin/sh
    echo "Entrer le premier nombre"
    read val1 
    echo "Entrer le deuxième nombre"
    read val2
     
    echo "Choisissez une opération"
    echo "1-Addition" 
    echo "2-Multiplication" 
    echo "3-Division" 
    read choix             
    if [ "$choix" -eq 1 ]
            then y=(($val1+$val2)) echo "$y"
    fi
     
    if [ "$choix" -eq 2 ]
            then y=(($val1 * $val2)) echo "$y"
    fi
     
    if [ "$choix" -eq 3 ]
            then y=(($val1/$val2))
                 z=0
                 if [ $val2 -le $z ]
                    then echo "Opération impossible"
                    else echo "$y"
                 fi
    fi

  2. #2
    Membre éprouvé
    Homme Profil pro
    Collégien
    Inscrit en
    Septembre 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Septembre 2014
    Messages : 65
    Par défaut
    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
    #!/bin/sh
    echo "Entrer le premier nombre"
    read val1 
    echo "Entrer le deuxième nombre"
    read val2
     
    echo "Choisissez une opération"
    echo "1-Addition" 
    echo "2-Multiplication" 
    echo "3-Division" 
    read choix             
    if [ "$choix" -eq 1 ]
            then y=($val1+$val2) echo "$y"
    fi
     
    if [ "$choix" -eq 2 ]
            then y=($val1 * $val2) echo "$y"
    fi
     
    if [ "$choix" -eq 3 ]
            then y=($val1/$val2)
                 z=0
                 if [ $val2 -le $z ]
                    then echo "Opération impossible"
                    else echo "$y"
                 fi
    fi

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

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

    pour obtenir la substitution d'une évaluation arithmétique, il faut la précéder d'un $.

    il manque des ;.

    plutôt que des if (qui, soit dit en passant, ne sont pas exclusifs : il ne font pas sortir du script), il serait préférable d'utiliser un case/esac.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    et aussi un select pour le menu.

  5. #5
    Membre à l'essai
    Homme Profil pro
    BTS SIO
    Inscrit en
    Octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : BTS SIO

    Informations forums :
    Inscription : Octobre 2016
    Messages : 4
    Par défaut
    Il ne fonctionne toujours pas ca me met "./exercice4: 14: ./exercice4: Syntax error: "(" unexpected (expecting ";;")
    "

    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
    #!/bin/sh
    echo "Entrer le premier nombre"
    read val1 
    echo "Entrer le deuxième nombre"
    read val2
     
    echo "Choisissez une opération"
    echo "1-Addition" 
    echo "2-Multiplication" 
    echo "3-Division" 
    read choix
    case $choix in
     
       1) y=($val1+$val2) echo "$y"
       ;;
       2) y=($val1 * $val2) echo "$y"
       ;; 
       3) y=($val1/$val2)
       z=0
          if [ $val2 -le $z ]
             then echo "Opération impossible"
             else echo "$y"
          fi
          ;;
     
    esac;;

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Normal, tu n'a pas lu ou compris nos réponses.

    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
    #!/bin/sh
     
    printf "Entrer le premier nombre : "
    read val1
    printf "Entrer le deuxième nombre : "
    read val2
     
    echo "Choisissez une opération"
    select operation in Addition Multiplication Division
    do
      case "$operation" in
      (Addition)
        y=$((val1 + val2))
        echo "$y"
        ;;
      (Multiplication)
        y=$((val1 * val2))
        echo "$y"
        ;;
      (Division)
        if [ $val2 -eq 0 ]
          then
            echo "Opération impossible"
          else {
            y=$((val1/val2))
            echo "$y"
          }
        fi
        ;;
      esac
      break
    done

  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
    De plus, quand tu auras remplacé les ($val1+$val2) par des $((val1 + val2)) et le esac;; par esac (ou adopté le script de Jiliagre), je t'invite à tester ton script avec, comme données d'entrée:

    -3 -3 division


Discussions similaires

  1. [PHP-JS] problème avec mon script de connexion
    Par agencep dans le forum Langage
    Réponses: 5
    Dernier message: 31/01/2008, 17h08
  2. [MySQL] Divers petits problèmes avec mon script
    Par fourniey dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 26/12/2007, 16h20
  3. Problème avec mon script shell case in esac
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 28/06/2007, 22h54
  4. Problème avec mon script
    Par Toinou0123 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 30/09/2006, 18h37
  5. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26

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