Veröffentlicht 24. Februar 200322 j hi, ich hab mir ein perl script geschrieben dass in einer for schleife den befehl chown für jeden kunden ausführen soll. leider funktioniert das ganze nicht so wie ich will, hab anscheinen irgendwo einen denkfehler. hier mal das script: #!/usr/bin/perl $e = 0; $z = 0; $d = -1; for ($i = 1; $i <= 189; $i++) { $d = $d + 1; $cmd = 'chown -R ros$e$z$d:ava ros$e$z$d'; system($cmd); if ($d >= 9 ) { $d = -1; $z = $z + 1; } if ($z >= 9) { $z = 0; $e = $e + 1; } } er sagt dann immer: chown: ros:ava: invalid user schonmal thx Spea
24. Februar 200322 j Mit $d = -1 meinst Du ja sicherlich keine negative Zahl sondern den String 'Bindestrich Eins'. Dann müßte es $d = '-1' heißen... Edit: Ooops. Hab gerade gesehen, daß das egal ist. Ich such mal weiter, vielleicht finde ich ja noch was anderes.
24. Februar 200322 j $cmd = 'chown -R ros$e$z$d:ava ros$e$z$d'; versuchs mal so: $cmd = "chown -R ros".$e.$z.$d.":ava ros".$e.$z.$d;
24. Februar 200322 j Mal sehen ob ich's richtig verstanden habe: Ihr habt Kunden mit einer fortlaufenden Nummer von 1 bis 189. Dein größtes Problem war wohl die führende Null bei der Kundennummer, also 001 für den ersten Kunden. Richtig? Wie wär's dann mit folgender Lösung: map { system(sprintf('chown -R %03dros:ava %03dros', $_, $_)) } 1..189;
24. Februar 200322 j Originally posted by dr.disk Mal sehen ob ich's richtig verstanden habe: Ihr habt Kunden mit einer fortlaufenden Nummer von 1 bis 189. Dein größtes Problem war wohl die führende Null bei der Kundennummer, also 001 für den ersten Kunden. Richtig? Wie wär's dann mit folgender Lösung: map { system(sprintf('chown -R %03dros:ava %03dros', $_, $_)) } 1..189; nope, das war nicht mein problem, wenn du das script genau anschaust, siehst du dass ich diese problem selbst gelöst habe. mein problem war dass ich die variablenübergabe falsch angegeben habe. aber trotzdem thx für deine hilfe so far Spea
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.