|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 3 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 3 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mai 2008 Messages : 3 ![]() |
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<&- ... |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
Citation:
for i in $(cat fichier) lira ligne à ligne |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com