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 diesen Ratgeber 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. Bootproblem

    Bootproblem: Hallo Ein PC (i686 mit Debian unstable, nox) hat Bootprobleme (will heißen ist erfolgt keine Grafikausgabe. was ich bisher gemacht habe: HDD an...
  3. Crontab und Scripts - Problem

    Crontab und Scripts - Problem: Hallo Zusammen Ich habe ein Script welches mittels Cronjob ausgeführt werden soll. Gemäss Log wird es auch ausgeführt, jedoch passiert nichts:...
  4. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...
  5. Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe

    Problem bei der Vergabe von Sciherheitsinformationen auf eine Freiagbe: Liebe Community, zurzeit arbeite ich an eine Active Directory Domäne die mittels Samba läuft. Dazu habe ich einen AD DC auf Debian 8.7 mit Samba...