Shell Script mit If Schleife funktioniert nicht

The_Rave

Mitglied
Ich habe auch eine If/Else Schleife die nicht funktioniert. Es wird aber immer nur die Else Zeile ausgeführ und die If Zeile nicht obwohl die Bedingung erfüllt ist. Es schein so zu sein daß die Variable $1 irgendwie verschwindet, jedenfalls wenn ich die unter der else Schleife mit Echo ausgeben will, steht da was falsches. Wenn ich die Else Zeile weglasse funktioniert die If Zeile ohne Probleme. Natürlich könnte ich auch zwei If Anweisungen nehmen, aber das muß doch auch mit Else gehen. Wo ist denn hier der Fehler? Kann mir mal jemand weiterhelfen?

Code:
#!/bin/sh

stty | while read line ; do
 set -- $line
 if [ "$1" = "+numlock" ] ; then
  echo "Numlock detected" 
  exit 1 
 else
  echo "No Numlock detected"
  exit 0 
 fi
done
 
Es schein wohl so zu sein, daß die while Schleife solange abgearbeitet wird, bis die bedingung erfüllt ist. Ist natürlich irgendwie blöd zwei Bedingungen dann aufzustellen. Wenn beim ersten Schleifendurchlauf dann schon das Ergebnis negativ ist, gehts natürlich gleich in die Else Zeile. So erklär ich mir das jedenfalls. Vielen Dank für eure Hilfe, ich konnte mich vor antworten ja kaum retten.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück