Problem mit if in der while Schleife...

Diskutiere Problem mit if in der while Schleife... im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; 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...

  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. Netzwerkproblem ? , wo ud wie suchen

    Netzwerkproblem ? , wo ud wie suchen: Hallo Folgende Problem: Testserver ist i686 Debian-unstable , auf dem läuft primär der apt-proxy apt-cahcer ng. Zugriff im Moment nur per ssh....
  3. Verständnisproblem Samba / LDAP

    Verständnisproblem Samba / LDAP: Hallo zusammen! Ich habe unter Ubuntu 16.04 einen LDAP und Samba Server aufgesetzt. Diese scheinen auch ordnungsgemäß zu funktionieren, sodaß ich...
  4. nginx+php-fpm problem

    nginx+php-fpm problem: Moin, ich hab hier gerade ein Problem und keine Idee mehr woran es liegt. Ich muss wie schon in der Überschrift erwähnt nginx dazu bringen php...
  5. Problem mit Windows auf Ordner auf dem Linuxsystem zuzugreifen

    Problem mit Windows auf Ordner auf dem Linuxsystem zuzugreifen: Ich mache gerade meine ersten Schritte mit Linux und würde gerne auf Dateien meines Linuxsystems auch mit Windows zugreifen, ich bin am...