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 :

Erreur dans mon script bash


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Erreur dans mon script bash
    Bonjour tout le monde!
    J'ai besoin de votre aide.
    Je tente de faire une calculatrice en bash! J'obtiens cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./calculatrice: ligne 2 : [: -eq : opérateur unaire attendu

    Je vois qu'il s'attend à un nombre et non un char, qu'est-ce que je dois faire?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
    if [ $2 -eq "+" ] || [ $2 -eq "-" ] || [ $2 -eq "*" ] || [ $2 -eq "/" ];then
    echo $(($1 $2 $3))
    else
    echo "erreur"
    fi

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2012
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2012
    Messages : 375
    Points : 1 030
    Points
    1 030
    Par défaut
    Bonsoir,

    Essaye de remplacer -eq par =

    -eq fait des comparaisons avec des nombres, et là +, -, * et / sont des chaînes.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonsoir.

    Merci!

    Maintenant le if fonctionne, sauf que le if ne détecte pas l'étoile *

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    Bonjour,

    comment passes-tu l'astérisque (*) au script ?
    il faut le protéger, sinon ça envoie la liste des fichiers du répertoire courant !

    PS: il y a plus "simple" que tous ces tests enchaînés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    case $2 in
    [-*/+]) echo $(($@))
    ;;
    *) echo "problème avec \$2 : $2" >&2
    ;;
    esac
    il faudrait aussi tester que tu as bien trois arguments, et que le premier et le troisième sont des nombres.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. [GD] Redimension d'image - plusieurs erreurs dans mon script
    Par Henry9 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/02/2007, 10h58
  2. Erreur dans mon script
    Par dcollart dans le forum Linux
    Réponses: 3
    Dernier message: 21/09/2006, 15h02
  3. Dessin avec Imager.. erreur dans mon script
    Par Chekov dans le forum Modules
    Réponses: 2
    Dernier message: 18/06/2006, 14h14
  4. erreur dans mon script
    Par Swata dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 00h02
  5. [langage]erreur dans mon script
    Par Fabouney dans le forum Langage
    Réponses: 11
    Dernier message: 30/06/2005, 14h58

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