Juergen Pabst wrote:
Hallo Kimmo!
Vielleicht so: ------------- cut here ----------------------- #!/bin/bash while read zeile do /usr/sbin/useradd "$zeile" -d /home/"$zeile" -g users -s /bin/false; echo -e "$zeile"; ( echo "passwort"; sleep 3; echo "passwort"; ) | /usr/bin/passwd "$zeile"; echo -e "Passwort gesetzt\n" done < benutzer.txt ------------- cut here -----------------------
"user" als Variablenname ist eine schlechte Wahl. Außerdem hast du die Variable "zeile" benutzt, obwohl deren Wert nie gesetzt wird.
Sorry, mein Fehler, im Script habe ich beide Versionen ($zeile und $user) ausprobiert, also an der Variablen sollte es nicht liegen.
Also so (siehe unten) funktioniert es bei mir :) (ist auch etwas schneller als mit einem slepp 3 für jeden neuen user) #!/bin/sh if test $1 then FILE=$1 else FILE="benutzer.txt" fi for newuser in `cat $FILE` do /usr/sbin/useradd $newuser -d /home/$newuser -g users -s /bin/false; echo -e $newuser; echo "password" | /usr/bin/passwd --stdin $newuser; echo -e "Passwort gesetzt\n"; done; Tipp: siehe # man passwd Ciao, Daniel