Problem mit if in der while Schleife...

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Linuxneuling, 04.04.2006.

  1. #1 Linuxneuling, 04.04.2006
    Linuxneuling

    Linuxneuling Tripel-As

    Dabei seit:
    09.02.2004
    Beiträge:
    249
    Zustimmungen:
    0
    Moin,

    wie kann ich im Skript if zum Laufen bringen, da if in der while Schleife verschachtelt ist. Punkt 2 (User erstellen bzw. einer Gruppe zuweisen) funktioniert nicht... Ist das überhaupt möglich if in der while zu verschachteln?

    Code:
    #!/bin/bash
    
    schleife=1
    while [ $schleife=1 ]
    do
    printf "                1:User erstellen\n\n"
    printf "                2:User erstellen bzw. einer Gruppe zuweisen\n\n"
    printf "                3:Ende\n\n"
    read ART
    case $ART in
    # case1
    1)
    echo "Bitte geben Sie den Username an:"
    read NAME
    echo "Bitte geben Sie die UID an:"
    read user
    echo "User \"$NAME\" wird mit UID \"$user\" erstellt"
    echo
    useradd -M -s /bin/false -u ${user} ${NAME}
    echo
    passwd ${NAME}
    echo
    echo "User \"$NAME\" wurde erstellt bzw. Passwort gaendert"
    ;;
    #case 2
    2)
    printf "Bitte geben Sie den Username an:\n\n"
    read NAME
    printf "Bitte geben Sie die Gruppe an:\n\n"
    read GRUPPE
    printf "Jetzt wird die Datei /etc/groups ueberprueft, ob die Gruppe vorhanden ist.\n\n"
    grep -w '$(GRUPPE)' /etc/group
    
            {if [ $? -eq 1 ] then 'groupadd ${GRUPPE}' && printf 'Die Gruppe $(GRUPPE) wurde erstellt!\n\n
                                    else printf 'Gruppe \"$GRUPPE\" existiert bereits!\n\n
                    fi}
    useradd -M -s /bin/false -g ${GROUP} ${NAME}
    printf "User \"$NAME\" wird erstellt und der \"$GRUPPE\" zugeteilt.\n"
    ;;
    
    #case 3
    3)
    break
    ;;
    
    
    *)
    echo "Die Auswahl ist ungueltig"
    
    #case ende
    esac
    #while ende
    done
    #rueckgabewert bei erfolg ist 0
    exit 0
    
    Folgende Meldung erhalte ich nach Ausführen des 2. Punkts:
    Code:
    user: line 34: {if: command not found
    user: line 36: fi}: command not found
    useradd: Unknown group `username'.
    User "username" wird erstellt und der "gruppe" zugeteilt.
    
    Irgendwie ist ein Fehlerteufel eingeschlichen, dass blöderweise die username als Gruppe interpretiert wird :-(
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 ninguno, 04.04.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    gib mal die geschwungenen klammern {} vor if und nach fi weg
     
  4. #3 Linuxneuling, 04.04.2006
    Linuxneuling

    Linuxneuling Tripel-As

    Dabei seit:
    09.02.2004
    Beiträge:
    249
    Zustimmungen:
    0
    dann funzt das skript überhaupt nicht mehr:
    Code:
    user: line 36: syntax error near unexpected token `fi'
    user: line 36: `                fi '
    
     
  5. #4 ninguno, 04.04.2006
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    da sind so viele syntaxfehler drin, man weiss gar nicht wo anfangen...
    aber ersetz mal dein if statement durch das folgende:
    Code:
    if [ $? -eq 1 ]
    then
      groupadd ${GRUPPE}
      printf 'Die Gruppe %s wurde erstellt\n\n' ${GRUPPE}
    else
      printf 'Die Gruppe %s existiert bereits!\n\n' ${GRUPPE}
    fi
    
     
  6. #5 Linuxneuling, 04.04.2006
    Linuxneuling

    Linuxneuling Tripel-As

    Dabei seit:
    09.02.2004
    Beiträge:
    249
    Zustimmungen:
    0
    Danke! Jetzt funktioniert das Skript! Langsam lerne ich die Syntakfehler kennen :-)
     
Thema:

Problem mit if in der while Schleife...

Die Seite wird geladen...

Problem mit if in der while Schleife... - Ähnliche Themen

  1. Script-Problem (While)

    Script-Problem (While): Hi Leute, habe hier nen prob. mit nem Script und komme seit Stunden nicht mehr weiter... BEFEHL="cat $QUELLE | tail -n \"$ZEILEN\" | grep -i...
  2. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  3. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  4. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  5. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...