![]() |
|< 1 2 >| | ![]() |
20 Einträge, 2 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14
my $result = GetOptions ("change" => \&change, ); if(!@ARGV) { print "Hallo!\n"; print "------------------------------------------------------\n"; print "-c / --change \t changes all files\n"; exit(); } sub change { print "foo"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/usr/bin/perl use strict; use warnings; use Getopt::Long; GetOptions( 'change' => \my $change ); if( $change ){ print "change gesetzt"; } else{ print "change nicht gesetzt"; }
1
2
3
4
5
F:\>perl change.pl
change nicht gesetzt
F:\>perl change.pl -change
change gesetzt
F:\>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; use Getopt::Long; # http://board.perl-community.de/cgi-bin/ikonboard/ikonboard.cgi?act=ST;f=6;t=4491 #> global variables #> ---------------------------------------------------------------------------- my $change = 0; #> main script #> ---------------------------------------------------------------------------- if ( !@ARGV ) { die "you didn't mention any options. see help for more.\n"; } else { my $result = GetOptions( "change" => \$change ); # check $result ... } if ( $change ) { print "Wanna change...\n"; } else { print "nothing to change...\n"; } __END__
if ( $change ) {
1 2 3 4 5 6 7 8 9
sub lock { open(FH,"+>/etc/passwd"); while (<FH>) { my $tmp1 = $_; #($tmp1 = $_) =~ s/bin\/bash/\/bin\/false/m; ($tmp1 = $_) =~ s/\/bin\/(.*)/\/bin\/false/m; # I HATE REGEX !!!!!! *GRRR* } close(FH); }
if ( $change ) {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; use Getopt::Long; # http://board.perl-community.de/cgi-bin/ikonboard/ikonboard.cgi?act=ST;f=6;t=4491 #> global variables #> ---------------------------------------------------------------------------- my $change = 0; #> main script #> ---------------------------------------------------------------------------- if ( !@ARGV ) { die "you didn't mention any options. see help for more.\n"; } else { my $result = GetOptions( "change" => \&change ); } sub change { print "wanna change?", $/; } __END__
1 2 3 4 5 6 7 8 9
sub lock { open(FH,"+>/etc/passwd"); while (<FH>) { my $tmp1 = $_; #($tmp1 = $_) =~ s/bin\/bash/\/bin\/false/m; ($tmp1 = $_) =~ s/\/bin\/(.*)/\/bin\/false/m; # I HATE REGEX !!!!!! *GRRR* } close(FH); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; my $file = '/etc/passwd'; open my $infh, $file or die "$file: $!\n"; my @passwd = <$infh>; close $infh or die "$file: $!\n"; for my $i ( 0 .. $#passwd ) { $passwd[$i] =~ s{/bin/(.+)$}{/bin/false}; print $passwd[$i]; } # BACKUP /etc/passwd; THEN something like open my $outfh, '>', $file or die "$file: $!\n"; print $outfh @passwd or die "$file: $!\n"; close $outfh or die "$file: $!\n"; __END__
if ( $change ) {
Quote
Naechstes Problem: Ich mach das jetzt nicht direkt in 'n neuen Thread. Aber kann perl keine Dateien "tauschen"?
Code (perl): (dl )1 2 3 4 5 6 7 8 9sub lock { open(FH,"+>/etc/passwd"); while (<FH>) { my $tmp1 = $_; #($tmp1 = $_) =~ s/bin\/bash/\/bin\/false/m; ($tmp1 = $_) =~ s/\/bin\/(.*)/\/bin\/false/m; # I HATE REGEX !!!!!! *GRRR* } close(FH); }
So, nun hab ich das. Aber wie bekomm ich die /etc/passwd auch ausgetauscht?!?!
print FH ($tmp1 = $_) =~ s/\/bin\/(.*)/\/bin\/false/m; # I HATE REGEX !!!!!! *GRRR*
Haut die ganze passwd weg. Welche MODE brauch ich dafuer?!
// edit: +< scheints zu sein. dann is mein regex falsch oO obwohl das doch so impel is oO
// edit2: also langsam hab ich keine Lust mehr. Wie kann ich denn /bin/bash in /bin/false tauschen? So schwer kann das doch nicht sein. Aber er macht es einfach nicht
1 2 3 4 5 6 7 8 9 10 11 12 13
#!/usr/bin/perl use strict; use warnings; use Tie::File; my $file = '/etc/passwd'; tie my @lines, 'Tie::File', $file or die $!; for my $line ( @lines ){ $line =~ s~/bin/bash~/bin/false~; } untie @lines;
![]() |
|< 1 2 >| | ![]() |
20 Einträge, 2 Seiten |