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

Linux Discussion :

Aide sur script.sh


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Points : 84
    Points
    84
    Par défaut Aide sur script.sh
    Bonjour,

    Je viens de débuter sur la programmation bash shell, j'ai un écris un petit programme mais il ne marche pas malgré de nombreux modifications de 1heure

    voilà 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
     
    #!/bin/bash
    echo "==MENU=="
    echo "1. CheeseBurger"
    echo "2. Pizza"
    echo "3. Kebab"
    echo "Donner votre choix svp : "
    read choix
    if ("$choix"=="1"); then
    echo "Vous avez choisis un CheeseBurger !"
    elif ("$choix"=="2"); then
    echo "Vous avez choisis une Pizza !"
    elif ("$choix"=="3"); then
    echo "Vous avez choisis un Kebab !"
    else echo "ERREUR DE COMMANDE"
    fi
    Merci beaucoup !

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 480
    Points
    19 480
    Par défaut
    vu ce que doit faire ton script, case serait plus approprié; mais tu pourrais trouver select intéressant.
    si tu tiens à utiliser if, et puisque tu utilises des nombres, tu devrais utiliser l'évaluation arithmétique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ((choix == 1))
    then echo "cheese"
    elif ...
    voir :
    en console : help test; help [; help [[; man bash
    sur le net :
    débutant
    avancé

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Points : 84
    Points
    84
    Par défaut
    Merci pour votre aide, j'ai modifié mais ça ne marche pas, voilà l'erreur qu'il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     » : identifiant non valablex
    main: line 17: Erreur de syntaxe : fin de fichier prématurée
    pour ce 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
     
    #!/bin/bash
    echo "MENU McDONALD'S"
    echo "1. CheeseBurger"
    echo "2. FiloFish"
    echo "3. Kebab"
    echo " "
    echo "=> Donner votre choix svp : "
    read choix
    if ((choix == 1));
    then echo "Vous avez choisis un CheeseBurger !"
    elif ((choix == 2));
    then echo "Vous avez choisis un FiloFish !"
    elif ((choix == 3));
    then echo "Vous avez choisis un Kebab !"
    else echo "ERREUR DE COMMANDE"
    fi

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 480
    Points
    19 480
    Par défaut
    J'ai choisi un kebab, il m'a servi un kebab.

    ça fonctionne.

    si tu as tapé le code, directement dans une console, il est possible que tes tentatives précédentes aient perverti le terminal...
    ?

    comment lances-tu le script ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Points : 84
    Points
    84
    Par défaut
    Ah bon ,, car c'est bizzare moi ça marche pas.
    En fait, je me déplace dans le répertoire où il y a le fichier.sh
    et j'écris : bash fichier.sh
    j'ai déjà essayé cette méthode avec des affichages simples et ça marche bien.

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    A tous les coups tes guillemets (") ne sont pas bons. Tu n'aurais pas tapé ton script dans word ou autre "éditeur" du même genre par hasard ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2010
    Messages : 129
    Points : 84
    Points
    84
    Par défaut
    t'as raison matafan !!
    Comme je suis débutant j'ai tapé sur Notepad, donc maintenant j'ai écris avec GEDIT et ça marche très bien !!
    Merci pour votre aide

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par seanbean Voir le message
    t'as raison matafan !!
    Comme je suis débutant j'ai tapé sur Notepad,
    notepad est un outil Windows. C'est pas notepad qui est en cause mais la façon dont Windows enregistre les fichiers textes.
    Dans ce monde, chaque ligne se termine par un \r (retour en début de ligne) puis \n (passage à la ligne suivante)... comme sur une machine à écrire.

    Dans le monde Unix/Linux, chaque ligne se termine par un '\n' qui fait à la fois office de retour et de passage à la ligne suivante.

    Donc la prochaine fois que tu arrives avec un fichier texte issu du monde zindow, pense à le convertir en utilisant l'outil dos2unix et ça marchera.

  9. #9
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Je pense que le problème c'est bien Notepad, qui doit convertir au moment de la frappe les guillemets ascii en guillemets français ouvrants ou fermants. Bash s'en sort bien avec les \n au format dos.

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par matafan Voir le message
    Je pense que le problème c'est bien Notepad, qui doit convertir au moment de la frappe les guillemets ascii en guillemets français ouvrants ou fermants
    Je le crois pas. C'est vraiment un super gros nul ce notepad !!!

    Citation Envoyé par matafan Voir le message
    . Bash s'en sort bien avec les \n au format dos.
    Mouais. Pourtant il m'est arrivé de lancer des scripts rapatriés bêtement via clef USB depuis zindow sans les convertir et bash me disait un truc ressemblant à ": command not found". Une fois convertis via dos2unix ça passait de suite. Mais bon, ptet que je me mélange les souvenirs...

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

Discussions similaires

  1. demande d'aide sur scripts
    Par threepwood dans le forum Linux
    Réponses: 5
    Dernier message: 06/08/2008, 14h34
  2. votre aide sur script fusionne cvs fichiers
    Par chapeau_melon dans le forum VBScript
    Réponses: 0
    Dernier message: 27/06/2008, 17h07
  3. [Upload] aide sur script upload
    Par Jopa5 dans le forum Langage
    Réponses: 4
    Dernier message: 25/11/2007, 16h30
  4. [Oracle 9.2] Aide sur script SQL
    Par fmoriet dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/02/2006, 09h25
  5. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 20h59

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