13.5 Python
Dies ist ein netter objektorientierter Interpreter.
Referenzen f�r Python:
Kurzes Programmbeispiel (erzeugt newusers
-Kommandoeintrag):
#! /usr/bin/env python
import sys, string
# (C) Osamu Aoki Sun Aug 26 16:53:55 UTC 2001 Public Domain
# Portiert von awk Skript durch KMSelf Sat Aug 25 20:47:38 PDT 2001
# Dieses Programm wird OHNE JEGLICHE HAFTUNG vertrieben.
def usages():
print \
"Verwendung: ", sys.argv[0], " start_UID [Dateiname]\n" \
"\tstartUID ist die erste Nutzer-ID zum Hinzuf�gen.\n" \
"\tDateiname ist eine Eingabedatei. " \
"Ohne Angabe wird die Standardeingabe verwendet.\n\n" \
"Format der Eingabedatei:\n" \
"\tVorname Nachname Passwort\n"
return 1
def parsefile(startuid):
#
# filtern
#
uid = startuid
while 1:
line = infile.readline()
if not line:
break
if line[0] == '#':
continue
(first, last, passwd) = string.split(string.lower(line))
# obiges st�rzt bei falscher Parameteranzahl ab :-)
user = first[0] + last
gid = uid
lineout = "%s:%s:%d:%d:%s %s,,/home/%s:/bin/bash\n" % \
(user, passwd, uid, gid, first, last, user)
sys.stdout.write(lineout)
+uid
if __name__ == '__main__':
if len(sys.argv) == 1:
usages()
else:
uid = int(sys.argv[1])
#print "# UID Start von: %d\n" % uid
if len(sys.argv) > 1:
infilename = string.join(sys.argv[2:])
infile = open(infilename, 'r')
#print "# Lese Datei von: %s\n\n" % infilename
else:
infile = sys.stdin
parsefile(uid)