Scripte souci avec boucle while read linux

florant -  
 florent -
Bonjour,

BOnsoir 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 ?
Configuration: Linux Mandriva
Firefox 2.0.0.13

2 réponses

  1. touchepasaugrisbi Messages postés 76 Date d'inscription   Statut Membre 4
     
    Bonsoir,

    Tu pourrais essayer quelque chose comme ça :

    #! /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<&-
    
    ...
    


    ;-)

    Bon courage.
    0
    1. florant
       
      ok ok merci je vais tester ca de suite... je vous tiens au courant =D
      0
    2. florant
       
      ok ok super ca marche. merci beaucoup!

      pourriez vous me décomposer la commande exec 6<&0 et read var <&6
      0
      1. touchepasaugrisbi Messages postés 76 Date d'inscription   Statut Membre 4 > florant
         
        exec 6<&0
        Le exec permet de rediriger l'entrée standard, par défaut le clavier, encore appelé stdin ou descripteur de fichier 0 (file descriptor ou fd).
        Dès que tu as exécuté cette commande, tout ce qui arrive au clavier se retrouve automatiquement dans le fd 6.

        read var<&6
        Tu indique qu'il faut lire l'entrée fd 6 (à la place de l'entrée standard...) et ranger la valeur lue dans la variable read.

        Pour plus de détail, tu peux aller voir ici :
        http://pagesperso-orange.fr/gleu/absfr.tuxfamily.org/abs-2.3-fr/io-redirection.html

        0
      2. florent > touchepasaugrisbi Messages postés 76 Date d'inscription   Statut Membre
         
        nickel ;)
        merci
        0
  2. dieu
     
    voilà pourquoi la méthode while read est à proscrire

    il faut tjrs la remplacer par un for

    for truc in $(cat fichier); do 
    ...
    read a
    ...
    done
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      A condition de tenir compte de ce qui a été dit là ;-))
      0