stefan: goto ähnlicher befehl bei shellprogrammierung

hi

kennt sich jemand mit shellprogrammierung aus?
Habe folgendes Prog:

read test
 if test "$test" = "1" ;
 then
  echo bla...
 elif test "$test" = "2" ;
 then
  echo blub...
 else
  echo test...
 fi
read x

Das Problem ist, wenn die Eingabe weder 1 noch 2 ist soll er wieder zu der read test springen und nochmal den Wert einlesen, um die Prüfung zu wiederholen. Leider gibt es kein goto.
jemand ne andere Idee??

Danke

  1. Hallo,

    read test
     if test "$test" = "1" ;
     then
      echo bla...
     elif test "$test" = "2" ;
     then
      echo blub...
     else
      echo test...
     fi
    read x

    Das Problem ist, wenn die Eingabe weder 1 noch 2 ist soll er wieder zu der read test springen und nochmal den Wert einlesen, um die Prüfung zu wiederholen. Leider gibt es kein goto.
    jemand ne andere Idee??

    Endlosschleife drumherum und mit break verlassen, wenn Eingabe korrekt ist, sollte funktionieren. Also in etwas so (ohne Gewähr auf korrekte Syntax, da ich derzeit kein UNIX-System in der Nähe habe):

    while [ true ]
    do
     read test
       if test "$test" = "1" ;
       then
         echo bla...
         break
       elif test "$test" = "2" ;
       then
         echo blub...
         break
       else
         echo test...
       fi
    done

    read x

    Viele Grüße
    Frank

  2. Hallo,

    Leider gibt es kein goto.
    jemand ne andere Idee??

    Ja. Da nimmt man eine der Schleifen-Anweisungen while oder until.
    http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html

    viele Grüße

    Axel

  3. vielen dank für die hilfe