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 de boucle en bash


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut problème de boucle en bash
    Bonjour,

    J'ai repris un code source présent sur un tuto du site et j'ai une erreur, je n'arrive pas a comprendre
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
    echo "Saisir une valeur"
    read value
    result=1
    for (( i=0 ; i<$value ; i++ ))
    do
    let result=$result*$value
    done
    echo "$value^$value = $result"
    Résultat:
    ./test2.sh
    Saisir une valeur
    2
    ./test2.sh: line 5: syntax error near unexpected token `(('
    ./test2.sh: line 5: `for (( i=0 ; i<$value ; i++ ))'


    Avez-vous une idée sur le problème svp ?

    Merci beaucoup

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    bha oui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./test2.sh: line 5: syntax error near unexpected token `(('
    ./test2.sh: line 5: `for (( i=0 ; i<$value ; i++ ))'
    c'est pas la bonne syntaxe de boucle for pour bash ou alors bash n'est pas dans /bin/bash mais ailleurs genre /usr/bin/bash
    vérifier avec un whereis bash et/ou un ls -l /bin/bashou encore ta distrib utilises sh ou un autre shell avec un alias /bin/bash -> /chemin/vrai_shell qui n'est pas bash.

    sinon à priori semblerai OK d'un point de vu strictement code


    sinon tu peux utiliser bc directement :

    en éliminant la boucle et faisant directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/bin/bash
    echo "Saisir une valeur"
    read value
    echo "$value^$value" | bc

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Citation Envoyé par frp31 Voir le message
    bha oui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ./test2.sh: line 5: syntax error near unexpected token `(('
    ./test2.sh: line 5: `for (( i=0 ; i<$value ; i++ ))'
    c'est pas la bonne syntaxe de boucle for pour bash ou alors bash n'est pas dans /bin/bash mais ailleurs genre /usr/bin/bash
    vérifier avec un whereis bash et/ou un ls -l /bin/bashou encore ta distrib utilises sh ou un autre shell avec un alias /bin/bash -> /chemin/vrai_shell qui n'est pas bash.

    sinon à priori semblerai OK d'un point de vu strictement code

    sinon tu peux utiliser bc directement :

    en éliminant la boucle et faisant directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/bin/bash
    echo "Saisir une valeur"
    read value
    echo "$value^$value" | bc
    Le fichier est bien présent :

    ls -alrt /bin/bash
    -r-xr-xr-x 1 root bin 516392 Jan 6 2000 /bin/bash

    file /bin/bash
    /bin/bash: ELF 32-bit MSB executable SPARC Version 1, dynamically linked, stripped


    En fait j'ai fait une boucle car je suis un tuto, et dans ce tuto il y avait ce petit exercice, du coup j'essaye de comprendre pourquoi cela ne fonctionne pas.

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    SPARC donc c'est peut être pas tout à fait le meme "bash"
    tu devrais essayer dans une VM sous qemu avec un PC émulé pour comparer
    mais sinon tu as bien compris visiblement le principe de la boucle for..

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Citation Envoyé par frp31 Voir le message
    SPARC donc c'est peut être pas tout à fait le meme "bash"
    tu devrais essayer dans une VM sous qemu avec un PC émulé pour comparer
    mais sinon tu as bien compris visiblement le principe de la boucle for..
    C'est juste, je viens de tester sur une debian, et cela fonctionne.

    merci beaucoup

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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