[gull] bash >> read imbriqué
Jean Pierre Rupp
jpierre at xeno-genesis.com
Thu Sep 24 20:32:39 CEST 2009
#!/bin/bash
exec 3<&0
while read fichier ; do
echo "supprimer le fichier $fichier ?[o/n]"
exec 4<&0
exec <&3
while read reponse ; do
if [ "$reponse" = "o" ] ; then
echo "on supprime le fichier >$fichier<"
break
elif [ "$reponse" = "n" ] ; then
echo "non, on passe au suivant"
break
fi
done
exec <&4
done << EOF
fichier1
fichier2
fichier3
fichier4
EOF
Le jeudi 24 septembre 2009 à 16:41 +0200, BRINER Cedric a écrit :
> Salut à tous amoureux du bash,
>
> comment faire dans ce genre de situation:
>
> #!/bin/bash
>
> while read fichier ; do
> echo "supprimer le fichier ${fichier} ?[o/n]"
> while read reponse ; do
> if [ "$reponse" = "o" ] ; then
> echo 'on supprime le fichier >${fichier}<'
> break
> elif [ "$reponse" = "n" ] ; then
> echo "non, on passe au suivant"
> break
> fi
> done
> done << EOF
> fichier1
> fichier2
> fichier3
> fichier4
> EOF
>
> --------------------
> je comprends le problème, c'est qu'on se retrouve avec 2 read qui lise
> la même sortie et l'un vide l'autre, ce qu'on remarque avec un simple
> echo dans le code
>
> #!/bin/bash
>
> while read fichier ; do
> echo "supprimer le fichier ${fichier} ?[o/n]"
> while read reponse ; do
> echo " - reponse fournie: ${reponse}"
> if [ "$reponse" = "o" ] ; then
> echo 'on supprime le fichier >${fichier}<'
> break
> elif [ "$reponse" = "n" ] ; then
> echo "non, on passe au suivant"
> break
> fi
> done
> done << EOF
> fichier1
> fichier2
> fichier3
> fichier4
> EOF
>
>
> --------------------
> mais comment faire alors ???
>
> cEd
> P.-S. Ca sent à plein fouet le exec, mais j'y comprends rien
> _______________________________________________
> gull mailing list
> gull at forum.linux-gull.ch
> http://forum.linux-gull.ch/mailman/listinfo/gull
More information about the gull
mailing list