Thread ueberpruefen ob commandline leer ist (19 answers)
Opened by RPerl at 2007-07-28 12:44

renee
 2007-07-28 15:24
#79024 #79024
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=RPerl,28.07.2007, 12:58]klar, klar. aber da funktioniert nicht mit subfunktionen.
Ich kann nicht einfach

Code (perl): (dl )
if ( $change ) {


machen. Weil ich kein $change habe sondern &change. Also eine Subfunktion

[/quote]

Ich kapier' noch nicht, was Du eigentlich machen willst...

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
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);
}

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

Code (perl): (dl )
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;
\n\n

<!--EDIT|renee|1185621887-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread ueberpruefen ob commandline leer ist