read liest nicht
Achim Dreyer
adreyer at math.uni-paderborn.de
Fri Oct 3 13:11:55 CEST 2003
On Fri, 3 Oct 2003, Kurt Gramlich wrote:
> Date: Fri, 3 Oct 2003 01:13:04 +0200
> From: Kurt Gramlich <k3r at gmx.net>
> To: lug-owl LinuxListe <linux at lug-owl.de>
> Subject: read liest nicht
>
> hallo,
>
> wer sieht, warum read b nicht von STDIN liest?
>
>
> #!/bin/sh
> #set -x
> #set -e
> while read a
> do
> vorname=$(echo $a | cut -d " " -f 1) ;
> name=$(echo $a | cut -d " " -f 2) ;
> echo "${vorname} ${name}"
> /home/kurt/bin/suchperson.sh ${vorname} ${name}·
> echo 'neu? [Y|n]'·
> read b ;
> if [ $b = "Y" ] ; then
> echo "Sie haben <ja> getippt"
> elif [ $b = " " ] ; then
> echo "Sie haben nichts bestätigt"
> elif [ $b = n ] ; then
> echo "Sie haben <nein> getippt"
> else
> echo "Der Dialog wurde abgebrochen"
> fi
> done < namenliste.txt
.. hier wird der input file descriptor für die while-Schleifen Subshell
umgebogen, da der filedescriptor nicht gespeichert wurde kann man dann in
der Schleife nicht darauf zugreifen.
> in b steht immer schon der naechste Namen, why?
>
> Viele Gruesse!
> Kurt
>
So geht's:
-- snip --
exec 3<&0
while read a; do
echo "gelesen: a = $a"
echo 'eingabe: '
read b <&3
echo "b = $b"
done < /etc/hosts
-- snip --
Regards,
Achim Dreyer
--
A. Dreyer, Senior SysAdmin (UNIX&Network) / Internet Security Consultant
More information about the Linux
mailing list