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 :

boucle while ksh


Sujet :

Linux

  1. #1
    Flk
    Flk est déconnecté
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut boucle while ksh
    Salut a tous, j'ai des ptits prblm avec le while :


    #!/bin/ksh
    echo "rentrer un truc"
    read truc
    while [ $truc != "FS" ]|[ $truc != "PROC" ]
    do
    echo "t le meilleur"
    done
    exit 0

    En fait qd je l'execute, il ne prends pas en compte le premier test, cad si je rentre FS, il rentre ds le while alors qu'il devrait pas, par contre si je rentre PROC, il sort du script.

    si je fais ca

    #!/bin/ksh
    echo "rentrer un truc"
    read truc
    while [ $truc != "FS"]
    do
    echo "t le meilleur"
    done
    exit 0

    ca passe nikel.

    J'ai essayé avec des crochets en plus, des paranthéses, rien n'a marché, sans doute un truc que je vois pas.

    Un truc?

    Merci d'avance.

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Attention le '|' seul n'est pas un ou mais une redirection.

    je verrais plutot un truc du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/ksh
    echo "rentrer un truc"
    read truc
    while [[ $truc != "FS" ]] || [[ $truc != "PROC" ]]
    do
    echo "t le meilleur"
    done
    exit 0
    http://www.versageek.com/ksh_munix.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Points : 376
    Points
    376
    Par défaut
    Il faut inverser dans une boucle while

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/ksh
     
    echo "rentrer un truc"
    read truc
    while [ $truc != "FS" ]&&[ $truc != "PROC" ]
    do
    echo "t le meilleur"
    done
    exit 0

  4. #4
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Ah oui aussi
    avec le ||ce serais des "==" dans les tests

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Points : 376
    Points
    376
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    Ah oui aussi
    avec le ||ce serais des "==" dans les tests
    non !
    si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while [ $truc == "FS" ]||[ $truc == "PROC" ]
    tu rentres jamais dans la boucle , sauf pour FS et PROC

  6. #6
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par Ashin Voir le message
    non !
    si tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while [ $truc == "FS" ]||[ $truc == "PROC" ]
    tu rentres jamais dans la boucle , sauf pour FS et PROC
    j'avais lu un peu en diagonale , je voulais le faire rentrer pour FS ou PROC

  7. #7
    Flk
    Flk est déconnecté
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Re
    Merci j'essaye et je vous tiens au courant

  8. #8
    Flk
    Flk est déconnecté
    Futur Membre du Club
    Inscrit en
    Décembre 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Re
    Ca marche nickel, merci bcp.
    C 'est bon a savoir.

  9. #9
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 730
    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 730
    Points : 31 053
    Points
    31 053
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Flk Voir le message
    Salut a tous, j'ai des ptits prblm avec le while :


    #!/bin/ksh
    echo "rentrer un truc"
    read truc
    while [ $truc != "FS" ]|[ $truc != "PROC" ]
    do
    echo "t le meilleur"
    done
    exit 0

    En fait qd je l'execute, il ne prends pas en compte le premier test, cad si je rentre FS, il rentre ds le while alors qu'il devrait pas, par contre si je rentre PROC, il sort du script.

    si je fais ca

    #!/bin/ksh
    echo "rentrer un truc"
    read truc
    while [ $truc != "FS"]
    do
    echo "t le meilleur"
    done
    exit 0

    ca passe nikel.

    J'ai essayé avec des crochets en plus, des paranthéses, rien n'a marché, sans doute un truc que je vois pas.

    Un truc?

    Merci d'avance.
    Tu modifies jamais ta variable "truc" dans ta boucle ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while true
    do
        echo "rentrer un truc"
        read truc
        test "$truc" != "FS" -a "$truc" != "PROC" && break
        echo "t'es le meilleur - recommence.."
    done

  10. #10
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Tu modifies jamais ta variable "truc" dans ta boucle ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while true
    do
        echo "rentrer un truc"
        read truc
        test "$truc" != "FS" -a "$truc" != "PROC" && break
        echo "t'es le meilleur - recommence.."
    done

    je pense qu'il n'a pas donné la totalité de son script, mais qu'il a extrait juste la partie qui le gênait pour éviter que l'on se complique avec des partie de scripts qui n'ont rien a voir avec son problème .

Discussions similaires

  1. [KSH] Boucle While dans un script ksh
    Par lezert dans le forum Shell et commandes POSIX
    Réponses: 1
    Dernier message: 27/01/2012, 14h19
  2. Boucle while & read
    Par gibet_b dans le forum Linux
    Réponses: 4
    Dernier message: 29/04/2005, 15h38
  3. boucle while et post incrémentation
    Par tut dans le forum C++
    Réponses: 7
    Dernier message: 10/12/2004, 17h24
  4. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51
  5. [débutant]Documentation? boucle "while"? Session?
    Par o151181 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 19/01/2004, 15h20

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