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 :

Structure de contrôle


Sujet :

Shell et commandes GNU

  1. #21
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Dans ton algorithme en #16 tu mets un « Lire A » dans la boucle, que tu ne mets pas dans ton code en #12.
    Si tu le mettais, la présence de la boucle aurait un sens et elle aurait une chance de s'arrêter un jour.

  2. #22
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    Code Shell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #!/bin/bash 
     
    read -p "Entrez un nombre compris entre 0 et 20 :" Nbr
     
    while (( Nbr < 0 || Nbr > 20 )); do
            read -p "Entrez un nombre correct :" Nbr
    done
     
    if [[ Nbr -ge 0 && Nbr -lt 9 ]]; then
            echo "ce nombre est compris entre 0-9"
    else
            echo "ce nombre est compris entre 10-20" 
    fi

    merci bcp Mr N_Bah!! pour vos conseils à partir de mon code ici pouvez vous m'aider à gerer les nombres décimaux avec un elif?!

  3. #23
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par balkany Voir le message
    Dans ton algorithme en #16 tu mets un « Lire A » dans la boucle, que tu ne mets pas dans ton code en #12.
    Si tu le mettais, la présence de la boucle aurait un sens et elle aurait une chance de s'arrêter un jour.
    Mr balkany pourriez vous me l'expliquer avec un algorithme afin de facilement m'éclairer?!

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut
    je ne passerais pas par if...elif...else...fi, mais par un case/esac avec des plages de nombres, et le Développement des chemins.

    dans un if...else..., si tu connais un peu le Remplacement de paramètres, tu peux enlever tous les nombres (avec un plage, encore), et voir s'il reste un point...

    PS: les expressions en italique sont des mot-clés du man. cf. man bash

  5. #25
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    je ne passerais pas par if...elif...else...fi, mais par un case/esac avec des plages de nombres, et le Développement des chemins.

    dans un if...else..., si tu connais un peu le Remplacement de paramètres, tu peux enlever tous les nombres (avec un plage, encore), et voir s'il reste un point...

    PS: les expressions en italique sont des mot-clés du man. cf. man bash


    je peux avoir un petit exemple?

  6. #26
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 271
    Points : 13 536
    Points
    13 536
    Par défaut
    pouvez vous m'aider à gerer les nombres décimaux
    Il n'y a pas de nombres décimaux en bash. Que des entiers.
    Il va falloir préciser le besoin.

  7. #27
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Il n'y a pas de nombres décimaux en bash. Que des entiers.
    Il va falloir préciser le besoin.

    ah okay merci!!! j'ai éssayé mais je n'avais que des erreurs

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 589
    Points : 19 474
    Points
    19 474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in 1.2 10
    do
        case $nb in [0-9]|1[0-9]|20) echo valide;; *.*) echo "la chaîne entrée contient un point";; esac
    done

  9. #29
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Citation Envoyé par FrancisTita Voir le message
    Mr balkany pourriez vous me l'expliquer avec un algorithme afin de facilement m'éclairer?!
    Eh bien, l'algorithme éclairant tu l'as toi-même donné en #16.
    Si tu l'appliques à ton code en #12, ça donne (avec une ou deux modifs supplémentaires) :
    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 
     
    read -p "Entrez un nombre : " Nbr
     
    while (( Nbr >= 0 && Nbr <= 20 )); do
      if [[ Nbr -eq 0 ]]; then
        echo "Ce nombre est un zero."
      elif [[ Nbr -gt 0 && Nbr -lt 10 ]]; then
        echo "C'est un nombre inclus dans l'intervalle 1-9."
      else
        echo "C'est un nombre inclus dans l'intervalle 10-20."
      fi
     
      read -p "Entrez un nombre : " Nbr
    done
     
    echo "Ce nombre est en dehors de l'intervalle 0-20."
    PS : je pense que le « Mr » est inutile lorsque tu t'adresses aux personnes participant à la discussion, en tout cas il est inutile en ce qui me concerne

  10. #30
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2019
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 51
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in 1.2 10
    do
        case $nb in [0-9]|1[0-9]|20) echo valide;; *.*) echo "la chaîne entrée contient un point";; esac
    done


    pourriez vous m'expliquer littéralement la ligne 3 svp c'est un peu complexe pour moi

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Lex/Yacc] Aide traduction des structures de contrôle
    Par pelo68 dans le forum Générateurs de compilateur
    Réponses: 2
    Dernier message: 07/12/2010, 10h26
  2. Créer des noms de WinForm dans une structure de contrôle ?
    Par Feroen dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/08/2007, 08h12
  3. Réponses: 7
    Dernier message: 12/03/2007, 09h06

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