Scripte souci avec boucle while read linux
florant
-
florent -
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 ?
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 ?
A voir également:
- Boucle while linux
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
- Backtrack linux - Télécharger - Sécurité
- Linux mint 22.1 - Accueil - Linux
2 réponses
Bonsoir,
Tu pourrais essayer quelque chose comme ça :
;-)
Bon courage.
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.
voilà pourquoi la méthode while read est à proscrire
il faut tjrs la remplacer par un for
il faut tjrs la remplacer par un for
for truc in $(cat fichier); do ... read a ... done
pourriez vous me décomposer la commande exec 6<&0 et read var <&6
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
merci