Veröffentlicht 21. Januar 201015 j Hallo Kollegen! Schlag mich grad mit nem Perl Skript rum um die IP-Adressen von Fileshares zu lesen. (Nicht fragen, es ist so!) Also die Fileshares haben in etwa den namen File01 bis File99. Hierzu brauch ich ein Perlskript das für vorhandene File´s einen Serverbefehl ausführt. Folglich soll von File01 bis File99 hochgezählt werden. Dummerweise heisst File01 so und nicht File1. Eine einfach For-schleife funktioniert also nicht. verschachtelte For-schleifen sind wohl die Lösung. sieht dann in etwa so aus: $z = 2; $x = 0; $y = 0; for ($z=2;$z<5;$z++){ for ($x=0;$x<10;$x++){ for ($y=0;$y<10;$y++){ } $y=0; } } Bis hierhin soweit alles klar. Theoretisch denk ich zumindest! nur wie rufe ich die Variablen nun entsprechend auf. und das am besten übergeben in ein Servercommand. z.B. `..... '... ifconfig server_$z file$x$y` funktioniert jedenfalls nicht. Könnt ihr helfen woran das liegt?
21. Januar 201015 j Hi, nur wie rufe ich die Variablen nun entsprechend auf. und das am besten übergeben in ein Servercommand. Mit exec oder system. # Beispiel, ungetestet: # ifconfig my $ifconfig = "/sbin/ifconfig"; # exec: exec("$ifconfig server_$z file$x$y") || die $!;; # system: my @args = ($ifconfig, "server_$z", "file$x$y"); system(@args) == 0|| die $?; [/PHP] Dank und Gruß
21. Januar 201015 j dank und Gruß an dich mtn! ich werds morgen mal testen und bescheid geben obs denn nun klappt. bis dahin mit besten Grüßen Lukullus
22. Januar 201015 j verwend doch einfach sprintf um die zahl zu formatieren: for (my $x=0;$x<100;$x++) { my $formatiert = sprintf("file%02d",$x); # hier dann den systemaufruf wie von mtn beschrieben } schau dir dazu mal das hier an (hilft fast immer): SELFHTML: Perl / Funktionsreferenz / Funktionen für Ein-/Ausgabe und Lesen/Schreiben von Daten
22. Januar 201015 j Was ist denn ein Fileshare und wieso greift man da per ifconfig zu? :confused: Performanter als mit einer eigenen for Schleife geht es ueber den Range Operator, da hier keine temporaere Variable (ausser natuerlich $_ ) hochgezaehlt wird oder ein temporaeres Array angelegt wird: for(map {"File".sprintf "%02i",$_} 0..99){ system("/sbin/ifconfig", "wasauchimmer", $_); } Mehr dazu unter perldoc perlop.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.