title image


Smiley Re: Adduser-Skript


Hi,



zu deinem Quellcode-Posting:



1. Dein Code wird Dein Code nicht sauber dargestellt: <FILEHANDLE> z.B. verschwindet, weil es vom Browser als HTML gewertet wird



Entweder schreibst Du statt < &lt; und statt > &gt; oder Du deaktivierst unter dem Eingabefeld das Häkchen (HTML-Code im Beitrag ausführen).



2. ist Dein Posting das gesamte test.pl-Skript?

Es ist für Leute, die korrigieren sollen/wollen, schwer, die Zeilen abzuzählen und den Fehler zu suchen.

Entweder setze einen Kommentar über die entsprechende Zeile, markierst die entsprechende Zeile mit HTML-Syntax (beispielsweise fett) oder Du postest den Code mit Zeilennummern.



Ein guter Editor für diese Sachen ist der VIM-Editor (http://www.vim.org); verfügbar für WinDOS, Linux, MAC, u.a.



Er beherrscht Syntax-Highlighting, Zeilennummerierung, etc. für viele Sprachen und kann den Quelltext als HTML-Datei abspeichern, so wie er im Editor ausschaut.



Es kann z.B. so aussehen:





1 #!/usr/bin/perl

2

3 # diese zwei anweisungen gehoeren in jedes Perl-Skript

4 use strict;

5 use warnings;

6

7 # verwende Namen fuer flock: LOCK_SH, LOCK_EX, see documentation for more

8 use Fcntl qw/:flock/;

9

10 # zwei Skalare fuer die Namensangabe

11 my ($vorname, $nachname) = ('','');

12

13 # Skalar fuer neu zu generierende UserID

14 my $newid = '';

15

16 # Hash der bereits existierenden UIDs

17 my %existing_uids = ();

18

19 # frage Benutzer nach Angaben (Leerangaben sollten noch abgefangen werden!!)

20 print "Bitte geben Sie den Vornamen ein: ";

21 chomp ($vorname = <STDIN>);

22 print "Bitte geben Sie den Nachnamen ein: ";

23 chomp ($nachname = <STDIN>);

24

25 # oeffne die Datei /etc/passwd lesend

26 open FILE, "< /etc/passwd" or die "/etc/passwd: $!";

27 # setze ein "SHARED LOCK"

28 flock FILE, LOCK_SH or die "/etc/passwd: $!";

29 # lese zeilenweise aus der Datei

30 while ( <FILE> ) {

31 # fuelle den Hash; benutze die UIDs als KEY, VALUE ist egal (hier 1)

32 $existing_uids{(split(/:/, $_))[0]} = 1;

33 }

34 # schliesse Datei; der LOCK wird automatisch geloest

35 close FILE;

36

37 # counter

38 my $i = 1;

39

40 do {

41 # generiere eine neue User-ID (1. Buchstabe des Vornamens, $i Buchstaben des Nachnamens)

42 $newid = substr($vorname,0,1) . substr($nachname,0,$i++);

43 }

44 # solange wie die neue User-ID bereits vorhanden ist

45 while ( defined($existing_uids{$newid}) );

46

47 # wandle die neue User-ID zu Kleinbuchstaben

48 $newid = lc($newid);

49

50 # gebe ID aus

51 print $newid, $/;

52









Greetz

Linuxer







Wann werden endlich wieder brauchbare Fehlermeldungen Mode?


Alle Angaben ohne Gewähr und auf eine Linux-Umgebung abgestimmt!


Woran liegt es, dass ein Danke oftmals schwerer geschrieben ist als eine bei weitem längere Frage?


http://perldoc.perl.orghttp://search.cpan.orghttp://httpd.apache.orghttp://www.oreillynet.com/linux/cmd/



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: