read liest nicht

Hans-Joachim Hoetger Hans-Joachim.Hoetger at willi.gt.owl.de
Fri Oct 3 13:56:10 CEST 2003


On Fri, Oct 03, 2003 at 01:13:04AM +0200, Kurt Gramlich wrote:
> 
> wer sieht, warum read b nicht von STDIN liest?
> 

Moin Kurt, 
siehst Du das wirklich nicht?
Du hast die Datei an STDIN gebunden. Da kommst Du mit Deinen Y
oder Ns nicht zwischen. Ich kann Dir einen Ansatz bieten. Der ist
aber ungetestet - sowas mache ich nicht sehr oft. 

zuerst machst Du einen neuen FD offen:
#exec 3<namenliste.txt

Dann liest Du mit der while Schleife aus der Datei:
#while read a <&3

Dann machst Du superwichtige Sachen und fragst anschließend den
user nach seiner Entscheidung (Lesen von STDOUT)
#read ANSWER <&0

Dann machst Du alles weitere, schließt die lesende Schleife.
Zum Schluß machst Du den von Dir erzeugten FD wieder zu.
#exec 3>&-
Fertig. Ich berichtige mal eben Deinen Code in dieser Weise. Gib
mal Feedback, ob das geklappt hat.
Grüße

#!/bin/sh
exec 3<namenliste.txt
while read AUSSAGEFAEHIGER_VARIABLENNAME <&3
do
 vorname=$(echo $AUSSAGEFAEHIGER_VARIABLENNAME | cut -d " " -f 1)
 name=$(echo $AUSSAGEFAEHIGER_VARIABLENNAME | cut -d " " -f 2)
 echo "${vorname} ${name}"
 /home/kurt/bin/suchperson.sh ${vorname} ${name}·
 echo 'neu? [Y|n]'·
 read ANTWORT <&0
 if [ "$ANTWORT" = "Y" ] ; then
  echo "Sie haben <ja> getippt"
 elif [ "$ANTWORT" = " " ] ; then
  echo "Sie haben nichts bestätigt"
 elif [ "$ANTWORT" = "n" ] ; then
  echo "Sie haben <nein> getippt"
 else
  echo "Der Dialog wurde abgebrochen"
 fi
done
exec 3>&-

-- 
Hans-Joachim Hoetger

"Gut ist auch des Emporkommen von Linux als Herausforderer
von Microsoft."       Angela Merkel (Die Zeit, 4.Mai 2000)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lug-owl.de/pipermail/linux/attachments/20031003/a451888e/attachment.sig>


More information about the Linux mailing list