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 :

Pb. ac un "read" dans une boucle de type "while read"


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par défaut Pb. ac un "read" dans une boucle de type "while read"
    Bonjour,

    j'ai un souci, je sêche depuis tous a l'heure

    jréalise un script sous linux actuellement mon souci est le suivant:

    j'utilise une boucle de type while read ligne

    -----------------------------
    while read ligne
    do

    done < fichier
    ----------------------------

    j'aimerai pouvoir insérer un read dans la boucle


    -----------------------------
    while read ligne
    do
    read a
    done < fichier
    -----------------------------

    mais le n'est pas prise en compte comment faire ?
    la boucle continu et le script me demande jamais de tapper la valeur a

  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
    for i in condition
    do
    ...
    read
    ...
    done

    c'est notament pour ce cas qu'il ne faut interdire/proscrire la structure

    while read machin
    do
    ...
    done

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par défaut
    merci, mais le souci c'est que mon but c'est de lire ligne par ligne un fichier
    d'où la structure:

    while read ligne
    do

    done < fichier

    et en fonction du contenu de la ligne je veux interrogé l utilisateur par
    un 'read' ou un menu PS3 peu importe...

    je ne pense pas qu'une boucle 'for' puisse résoudre mon probleme

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par défaut
    Une solution possible:

    #! /bin/bash

    ...

    # Duplique la sortie par défaut (le clavier : stdin ou '0') dans un descripteur de fichier (ici '6')
    exec 6<&0

    while read line
    do
    ...
    read var <&6
    ...
    done < fichier

    # RAZ de la sortie par défaut
    exec 0<&6 6<&-

    ...

  5. #5
    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
    Citation Envoyé par florant23 Voir le message
    merci, mais le souci c'est que mon but c'est de lire ligne par ligne un fichier
    d'où la structure:

    while read ligne
    do

    done < fichier

    et en fonction du contenu de la ligne je veux interrogé l utilisateur par
    un 'read' ou un menu PS3 peu importe...

    je ne pense pas qu'une boucle 'for' puisse résoudre mon probleme
    si

    for i in $(cat fichier)
    lira ligne à ligne

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

Discussions similaires

  1. [PowerShell] double quotes et variables dans une ligne de script Powershell
    Par Aenean dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 08/12/2014, 17h55
  2. Problème avec une boucle de type Do While =>Loop
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 23/09/2011, 08h53
  3. [vbnet 1.1]Inserer deux simple quote sans texte dans une db
    Par ChristopheOce dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/03/2007, 08h51
  4. [VB]probleme double quote dans une ressource de type string
    Par JulienCEA dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/02/2006, 12h38

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