Kyek, Andreas, VF-DE schrieb:
Lentes, Bernd wrote:
ich versuche, mittels xargs alle Benutzer aus /etc/passwd zusätzlich als Datenbankuser in einer postgres-DB anzulegen. Es sind zwar nur ca. 20 accounts, ist aber eine ganz nette Übung. Ich setze folgendes auf der bash ab:
grep -w 100 /etc/passwd |grep -i bash |cut -d ":" -f1 |xargs -t createuser -Sdr -U postgres
Heraus kommt dann: createuser -Sdr -U postgres games bernd.lentes jens.hansen rainer.eitz test deanna.church guglielmo.roma jim.kadin elia.stupka geoff.hicks micheal.mcleod richard.baldarelli scooter.morris songyan.liu vincenza.maselli vivek.iyer createuser: too many command-line arguments (first is "bernd.lentes") Try "createuser --help" for more information.
Habe auch 'mal xargs -0 probiert, hat auch nicht geholfen. Eigentlich sollte doch xargs dafür sorgen, daß createuser mehrmals aufgerufen wird, mit jeweils einem Namen als Parameter.
IMO falsch!
Wieso wird createuser nur einmal aufgerufen, mit allen Usern ?
Weils xargs genau dafür gedacht ist?
ein "find . | xargs rm" macht genau das NICHT was du sagst. Es ruft eben nicht für jede Zeile von find einmal "rm" auf, sondern versucht (mit mehreren Randbedingungen, siehe "man xargs") möglichst viele Parameter in die Kommandozeile zu packen OHNE dabei die maximale Eingabelänge zu überschreiten. Das ist z.B. sinnvoll wenn ein
"zu lang" wird. Also: falsches Kommando
Andreas
Hi, irgendwas in der Art users=`grep -w 100 /etc/passwd |grep -i bash |cut -d ":" -f1` for user in $users do createuser -Sdr $user done sollte tun. Kannst ja statt "createuser..." erstmal "echo ..." nehmen cu jth -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org