Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
perl "system()"

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
rübezahl
Gast





BeitragVerfasst am: 09. Jan 2002 23:04   Titel: perl "system()"

Hi!
Ich verwende ein system-aufruf um aus ein Perl-Skript ein Programm zu starten. Leider leuft das Skript erst weiter, nach dem das Program wider geschlossen (beendet) wirt. Wie kann man das anders machen?

mfg Rübezahl

Das Skript:

#! /usr/bin/perl -w

use strict;
use Tk;
use File::Find;

my $zwischen;
my @liste;
my $zufall;
my $ausgabe;
my $anzahl;
my $durchlauf;
my $mw;
my $print;

$mw = MainWindow->new;
$mw->title("scheiß");

$mw->Button(-text => "Verzeichnis aktuallisieren",
-command => \&suchen)->pack;
$anzahl = "1";
foreach my $p (1, 2, 3, 4){
$mw->Radiobutton(-text => $p,
-value => $p,
-variable => \$anzahl)->pack;
};
$mw->Button(-text => "Start",
-command => \&rotiene)->pack;
MainLoop;


sub rotiene {
chomp($anzahl);
open(LISTE, " /backup2/backup/cd/liste.txt") || die "dateihandel fehlgeschlagen";
@liste = <LISTE>;
close(LISTE);

for ($durchlauf =0; $durchlauf < $anzahl ; ++$durchlauf ){
srand;
$zufall = int( rand(@liste));
$ausgabe = $liste[$zufall];
system "gqview $ausgabe \&";
print $ausgabe;
};
};
sub suchen {system ("find /backup2/backup/cd/ -type d > /backup2/backup/cd/liste.txt");
};
 

Jochen
Gast





BeitragVerfasst am: 10. Jan 2002 9:59   Titel: Re: perl

Da system() eine Shell zum Ausführen startet, würde ich es schlicht erst mal mit einem "&" am Ende des find-Kommandos probieren. Sollte es das nicht tun, noch ein "nohup" davorsetzen.

Probier's mal aus und sag Bescheid, ob es das tut!

Jochen
 

rübezahl
Gast





BeitragVerfasst am: 10. Jan 2002 10:45   Titel: Re: perl

Ich meinte den zweiten system-aufruf mit "gqview".

Kurtz vor'm Einschlaffen bin ich selb'st drauf gekommen. Ich hab das Licht noch mal angknipst und den Rächner angeschmissen.
Tatsächlich! Ich hatte vergessen mit chomp() die Varieable $ausgabe vom "
" zu bereinigen, deshalb glaubte die Bash, "&" sei ein seperater Befehl, den Sie nicht kenne.

Was lerne ich daraus? Fehlermeldungen ernst nehmen, da ich nicht vor einem Win-Rächner sitze, haben die durch aus Gehalt.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy