Thread Starten von Programmen nach Erstellung eines Files (14 answers)
Opened by giordani at 2010-07-07 11:12

Gast giordani
 2010-07-07 15:27
#139647 #139647
Hallo Linuxer,
besten Dank für den ausführlichen Code. Mein Prozess ist nicht so einfach. Es besteht aus Perl-Sripts, die die Output-Dateien aus OpenBUGS aufarbeiten und als Dateien wieder für andere OpenBUGS-Aufrufe zur Verfügung stellen. Beim Aufruf von OpenBUGS stellt sich OpenBUGS automatisch in den Hintergrund, vermutlich weil ich OpenBUGS über Authotkey ausführe und Autohotkey-Datei über Perl. Ich denke, dass ich nun mein Problem unelegant gelöst habe. Zuerst kommt der Beispiel-Code den ich mit Perl ausführen möchte. Er produziert zwei text-Dateien mit Verzögerung. Der zweite Code ruft den ersten auf und wartet, bis die text-Datei test2.txt erstellt wird und schliesst dann ab.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ordner = "E:/Test/testordner/";
opendir ORDNER,"$ordner" || die "opendir von ORDNER nicht möglich";
@files = ("test1.txt","test2.txt");

foreach $file (<$ordner*>) {
unlink $file;
}
sleep(10);
foreach $file (@files) {
open OUTPUT, ">$ordner".$file;
}

@files = readdir ORDNER;
$x = @files;
print "number of files: $x\n";
close ORDNER;


Code: (dl )
1
2
3
4
5
6
7
8
9
10
$directory = $ordner = "E:/Test/testordner/";
$file = "test2.txt";
print "Zuerst wird einige Sekunden gewartet.\n";
sleep(2);
print "Jetzt createCount.pl gestartet.\n";
system("createCount.pl");
until (-e $directory.$file) {
print "Das File test2.txt ist noch nicht erstellt.\n"; # das wird nicht angezeigt auf der Konsole. Verstehe ich nicht, aber kann damit leben.
};
print "Nun ist test2.txt erstellt.\n";


Ich weiss, einem Perlianer wird es schlecht, wenn er den Code sieht, aber ich hoffe, ich mache nur einen Schönheitsfehler und nicht einen groben.
Besten Dank für Deine Hilfe. Ich werde Deinen Code-Style nadisna übernehmen.
Übrigens
Gruss
giordani
Last edited: 2010-07-07 15:28:38 +0200 (CEST)

View full thread Starten von Programmen nach Erstellung eines Files