loop

M

Marc2468

Grünschnabel
Hallo,
ich hätte eine Frage zur Loopfuntion in einem Bash Skript.
Wenn ich in einem Bash Skript eine "case" Schleife schreibe (siehe Beispiel), kann ich dann diese "loopen" lassen?
Beispiel:
Code:
#!/bin/sh
echo "Bitte 1 oder 2 eingeben"
read a;

case $a in
1) echo "1 ist die eingegebene Zahl";;
2) echo "2 ist die eingegebene Zahl";;
3) echo "3 ist die eingegebene Zahl";;
4) echo "4 ist die eingegebene Zahl";;
*) echo "die Eingabe ist falsch!"
echo "bitte 1 oder 2 eingeben"
read a;
# Was muss ich hier eingeben, damit die Schleife von vorne beginnt?!;;
esac

Ich würde mich über eine Antwort freuen, Danke schon mal!
Gruß Marc.
 
@xanti : ginge auch eine for (;;)-schleife ? (hab grad keine shell greifbar...)
 
@Xanti: Danke, das ist schon mal ein Ansatz, damit kann ich die komplette Schleife wiederholen lassen, aber ich möchte nur eine wiederholung wenn der letzte Punkt anspringt (*), also bei Falscheingabe.

Denn wenn ich
Code:
while true; do #darüber
...
done #drunter
eingebe, hab ich dass Problem, dass bei einer Falscheingabe zwar die Schleife wiederholt wird, bei einer richtigen, in die Unendlichkeit, aber auch!

bei der for Schleife, die Du noch hingeschriben hast, besteht genau das selbe Problem!

Dafür währ ne Lösung noch total super, Danke schon mal!

Gruß Marc.
 
Zuletzt bearbeitet:
case ist nicht als Schleife konzipiert. Wenn Du unbedingt mit case arbeiten willst, solltest Du in der while-Bedingung den Exit-Status der case-Umgebung abfragen.

Gruss, Xanti
 
[...] hab ich dass Problem, dass bei einer Falscheingabe zwar die Schleife wiederholt wird, bei einer richtigen, in die Unendlichkeit, aber auch!

Versuche es doch mit einem 'break' am Ende jedes Falles:
Code:
while true; do
case $a in 
1) echo "1 eingegeben"; break ;;
...
*) echo "Nochmal";;
esac
done
 
@rikola: klasse!!! Du bist ein Gott! ;-)
Mit den einfachsten sachen kann einem geholfen werden!
So funktionierts einwandfei!

Damit ist mein Problem gelöst!
Danke an alle Beteiligten!

Gruß Marc.
 
Right - den Abbruch der Schleife mit break hätte ich hier auch empfohlen :D

-ups bissi zu spät, sry-
 

Ähnliche Themen

script sshpass

Verschlüsseltes Backup-Script mit rsync

Keine grafische Oberfläche (Debian Installation)

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Summe von Zahlen in einer Zeilen bilden

Zurück
Oben