Hallo Joerg, probier das Script mal aus, wenn du auf der ersten Textconsole eingeloggt bist. read -t 2000 VARIABLE
Joerg Thuemmler schrieb:
ja wenn Du das Zeug beim booten startest, hat es kein kontrollierendes Terminal, d.h. stdin/stdout/stderr fehlen resp. werden durch /dev/null oder so geliefert. In so einem Falle mußt Du sie AFAIK umlenken: z.B. read -t 2000 VARIABLE
Danke, das hat mich schon ein gutes Stück weitergebracht, jetzt ist der Timeout wenigstens noch nicht erreicht und das Skript wartet schön auf mich. Dafür nimmt es Script jetzt die Eingabe nicht so an wie es soll. Hmpf.
Hier der Code:
echo "1: Aktion 1" echo "2: Aktion 2" read -t 25 AUSWAHL < /dev/tty1 if [ "$AUSWAHL" = "1" ]; then echo "1 gedrückt" elif [ "$AUSWAHL" = "2" ]; then echo "2 gedrückt" else echo "Timeout erreicht" fi
Wenn ich jetzt innerhalb der 25 s die 1 oder 2 eingebe, sagt mir das Script nur: "1 nicht gefunden" oder "2 nicht gefunden". Leider reagiert das Script auch nicht auf folgenden Eintrag in der ersten Zeile:
#!/bin/bash -x
womit ich ja sonst wenigstens etwas mehr sehen könnte, was das Script macht. Ich habe auch schon mit den Parametern von read rumgespielt, z.B. einen Prompt gesetzt (-p PROMPT) usw. Auch rufe ich das Script jetzt erst in .profile auf.
Was kann da jetzt noch falsch sein?
mfG, Jens