![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Veteran
![]() Registriert seit: 20.05.2003
Alter: 51
Beiträge: 398
|
Hallo,
wie lautet der BASH Befehl um bei einer bestimmten Bedingung das Script zu verlassen: read -p "Wie ist der neue Computername?: " name read -p "UID eingeben : " uid IFS=: cat /etc/passwd | while read account pw vuid gid bem home shell do if test $uid = $vuid then echo "UID ist schon vorhanden!" --> HIER ALLES ABBRECHEN! fi done cat /etc/passwd | while read account pw vuid gid bem home shell do if test $account$ = $account then echo "Konto ist schon vorhanden!" --> UND HIER!!! fi done useradd -c Computerkonto -d /dev/null -g 100 -s /bin/false -u $uid $name$ smbpasswd -a -m $name if test $? = 0 then echo "Computeraccount wurde erstellt!" else echo "Es ist ein Fehler beim Erstellen des Computeraccount aufgetreten!" fi ....exit funktioniert bei mir einfach nicht!!!! gruss jorge |
|
|
|
|
|
#2 |
|
Elite
![]() |
also ich hab grad folgendes ausprobiert
echo "lalala" exit echo "aaaaa" und es wird nur die erste zeile ausgegeben geht er bei dir in die if bedigung rein?
____________________________________
Whoever built humanity left in a major design flaw: it was the tendency to bend at the knees. |
|
|
|
|
|
#3 |
|
Veteran
![]() Registriert seit: 20.05.2003
Alter: 51
Beiträge: 398
|
cat /etc/passwd |
while read vaccount pw vuid gid bem home shell do if test $name$ = $vaccount then echo "Konto ist schon vorhanden!";exit fi done ++ test 1700 = 1700 ++ echo 'UID ist schon vorhanden!' UID ist schon vorhanden! ++ exit ...und dann macht er weiter useradd -c Computerkonto -d /dev/null -g 100 -s /bin/false -u $uid $name$ ++ useradd -c Computerkonto -d /dev/null -g 100 -s /bin/false -u 1700 'test1700$' useradd: user test1700$ exists smbpasswd -a -m $name ++ smbpasswd -a -m test1700 ..... wie muss ich exit dann einbauen??? gruss jorge |
|
|
|
|
|
#4 |
|
Veteran
![]() Registriert seit: 20.05.2003
Alter: 51
Beiträge: 398
|
ok, hab den Fehler gefunden:
while - do wird in einer subshell ausgeführt auf die sich auch das exit kommando bezieht. also muss ich den shell - prozess mit "kill $$" killen (how rude!!) falls jemand ne elegantere lösung weiss ist er gerne eingeladen, die hier zu posten. hier meine endfassung (auf einen neuen samba benutzer bezogen): read -p "Wie ist der neue Benutzername?: " name read -p "Vorname?: " vname read -p "Nachname?: " nname IFS=: cat /etc/passwd | while read vaccount pw vuid gid bem home shell do if test $vaccount = $name then echo "Benutzer ist schon vorhanden!" kill $$ fi done useradd -c "$vname $nname" -d /home/$name -g 500 -s /bin/false $name smbpasswd -a $name gruss jorge |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|