WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 23.02.2004, 09:53   #1
jorge
Veteran
 
Registriert seit: 20.05.2003
Alter: 51
Beiträge: 398


Standard shell script bei bedingung verlassen

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
jorge ist offline   Mit Zitat antworten
Alt 23.02.2004, 10:33   #2
Who-T
Elite
 
Registriert seit: 01.08.2000
Beiträge: 1.395


Who-T eine Nachricht über ICQ schicken
Standard

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.
Who-T ist offline   Mit Zitat antworten
Alt 23.02.2004, 10:55   #3
jorge
Veteran
 
Registriert seit: 20.05.2003
Alter: 51
Beiträge: 398


Standard

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
jorge ist offline   Mit Zitat antworten
Alt 23.02.2004, 12:11   #4
jorge
Veteran
 
Registriert seit: 20.05.2003
Alter: 51
Beiträge: 398


Standard

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
jorge ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:52 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag