Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/05/2008, 07h59   #1
Invité de passage
 
Inscription : mai 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 3
Points : 1
Points : 1
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
florant23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 09h09   #2
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
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 : 3 546
Points : 7 779
Points : 7 779
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
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 09h16   #3
Invité de passage
 
Inscription : mai 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 3
Points : 1
Points : 1
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
florant23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 09h27   #4
Invité de passage
 
Inscription : mai 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 3
Points : 1
Points : 1
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<&-

...
florant23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 10h23   #5
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
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 : 3 546
Points : 7 779
Points : 7 779
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
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h57.


 
 
 
 
Partenaires

Hébergement Web