aus Perl Skript einen Linux Befehl ausfühen
Fisch
- cgi
Hallo, wieder ein Problem
ich möchte in meinem Perlskript einen Linux Befehl ausführen.
ich mache es zur zeit mit
system(" befehl ");
leider geht es nicht, was mache ich falsch, gibt es noch eine andere Möglichkeit?
mfg#
Fisch
Hi,
ich möchte in meinem Perlskript einen Linux Befehl ausführen.
ich mache es zur zeit mitsystem(" befehl ");
leider geht es nicht, was mache ich falsch
Ich kann nur raten, was du falsch machst: du hast die Pfadangaben
nicht gesetzt? ,) Ausserdem gehoeren die Leerzeichen nicht in die
Quotas, so das das wahrscheinlich so aussehen muesste:
system("pfad/befehl");
gibt es noch eine andere Möglichkeit?
klaro ,) ueber open:
open(BEF,"pfad/befehl parameter ");
while(<BEF>)
{
print $_;
}
close(BEF);
Um in STDIN zu schreiben:
open(BEF," pfad/befehl parameter");
print BEF "STDIN-Schreibsel ,)";
close(BEF);
Aber EIGENTLICH steht das alles in SelfHTML und in allen guten
Perl-Docus oder Handbuechern ,)
mfg
CK1
Ich kann nur raten, was du falsch machst: du hast die Pfadangaben
Das macht wenig Sinn.
system("pfad/befehl");
Wenn ein Fehler auftreten kann sollte man ihn stets abfangen, wie Cheatah es vorgeschlagen hat. Also
system "pfad/befehl" or die "Kann pfad/befehl nicht starten: $!";
open(BEF,"pfad/befehl parameter ");
Hier sollte auch geprüft werden, ob ein Fehler aufgetreten ist.
close(BEF);
Hier auch.
open(BEF," pfad/befehl parameter");
Hier auch.
close(BEF);
Hier auch.
Peter
Hi,
leider geht es nicht, was mache ich falsch, gibt es noch eine andere Möglichkeit?
"geht nicht" geht nicht. Wir können Dir nur helfen, wenn Du eine Fehlerbeschreibung mitlieferst. Als erstes solltest Du Dir aber angewöhnen, bei _allen_ Operationen dieser Art (also auch z.B. open) den Fehlercode abzufragen:
system('xyz') or die "Kann xyz nicht ausfuehren: $!";
Anschließend ins Errorlog des Servers schauen. Bei CGI-Scripts benutze auch
use CGI::Carp 'fatalsToBrowser';
Cheatah