[gull] Petit problème shell script
Marc SCHAEFER
schaefer at alphanet.ch
Tue Nov 11 17:11:02 CET 2003
On Tue, Nov 11, 2003 at 04:06:06PM +0100, Blaise Drayer wrote:
> cat /etc/group | grep ":1[0-9][0-9]:" | cut -d':' -f1 | while read GROUP; do
>
> echo "Add to $GROUP? [y/N] : "; read INPUT
>
> if [ $INPUT = "Y" ]; then
Réécrivons pour mieux voir le contexte stdin/out/err
grep < /etc/group ":1[0-9][0-9]:" \
| cut -d':' -f1
| (while read GROUP
do
echo blabla
read INPUT
done)
dans les () on a que stdin est connecté au pipe qui vient du
cut. C'est bien ce que lit le premier read.
Le deuxième read veut probablement lire le clavier. En supposant
que l'on n'a pas modifié la sortie d'erreur, celle-ci est aussi le
clavier. On peut aussi accéder directement à /dev/tty qui représente
le tty.
read <&2 INPUT
ou
read < /dev/tty INPUT
Remarque finale:
Il serait peut-être mieux de séparer fonctionnement la base du script
de l'interface utilisateur: générer toutes les opérations, puis
laisser filtrer, et enfin exécuter ce qui n'a pas été filtré.
More information about the gull
mailing list