The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Aufruf einer C-Funktion aus einem Perl-Skript jisha Shell Programmierung und Scripting 9 05-08-2008 01:59 AM
Rufen Sie Winzip aus Perl-Skript MobileUser Shell Programmierung und Scripting 5 04-04-2007 04:51 AM
Aufruf eines Shell-Skript aus Perl gurukottur Shell Programmierung und Scripting 3 10-05-2006 12:48 PM
Box A Perl-Skript Aufruf Feld B der Shell-Skript new2ss Shell Programmierung und Scripting 1 09-13-2006 07:17 AM
Aufruf in Perl CGI-Shell-Skript [dringend] DeepakXavier Shell Programmierung und Scripting 0 10-09-2005 02:51 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 02-06-2007
new2ss new2ss is offline
Registrierte Nutzer
  
 

Join Date: Jan 2006
Beiträge: 133
Aufruf eines Perl-Skript von einem Perl-Skript

Code:
printf(”Going to call another script... \n”);
system(”/my_dir/B.pl”); # call another perl script B.pl
exit;
Hi everyone, oben ist ein Beispiel dafür, dass ich mit einen weiteren perl Skript aus dem aktuellen perl Skript.

Ich habe zwei Anliegen:
1) Diese gibt einen besseren Weg zur Erreichung des gleichen Zweck (zB ein anderes perl Skript von einem perl Script)?

2) Hinweise gibt es eine Ausfahrt Befehl in meinem Script Aufruf. Wird die Ausfahrt Befehl ausgeführt werden erst nach B.pl ist oder es wird sofort ausgeführt B.pl heißt?
  #2 (permalink)  
Old 02-06-2007
cbkihong cbkihong is offline Forum Advisor  
Advisor
  
 

Join Date: Sep 2002
Ort: Hong Kong, China
Beiträge: 1624
Zitat:
Zitat von new2ss
1) Diese gibt einen besseren Weg zur Erreichung des gleichen Zweck (zB ein anderes perl Skript von einem perl Script)?
Ja. Verwenden Sie require ().

Zitat:
Zitat von new2ss
2) Hinweise gibt es eine Ausfahrt Befehl in meinem Script Aufruf. Wird die Ausfahrt Befehl ausgeführt werden erst nach B.pl ist oder es wird sofort ausgeführt B.pl heißt?
Ich glaube, es sei denn, Ihr B.pl selbst läuft im Hintergrund (z. B., dass der Daemonen, zum Beispiel), die perl für B.pl wird nicht verlassen, bevor es abgeschlossen ist, und damit system () Aufruf in Ihrem Skript wird nicht wieder (beachten Sie, dass system () führt eine nur perl Prozess in der gleichen Weise wie andere Prozesse). Wenn Sie die Ausfahrt () tritt nach dem Einschalten des Systems (), können Sie davon ausgehen, es wird nur dann ausgeführt, wenn B.pl Ausgänge aus welchem Grund auch immer.

Haben Sie versucht, herauszufinden, ob dies der Fall ist?
  #3 (permalink)  
Old 02-06-2007
new2ss new2ss is offline
Registrierte Nutzer
  
 

Join Date: Jan 2006
Beiträge: 133
Zitat:
Zitat von cbkihong
Ja. Verwenden Sie require ().

Ich glaube, es sei denn, Ihr B.pl selbst läuft im Hintergrund (z. B., dass der Daemonen, zum Beispiel), die perl für B.pl wird nicht verlassen, bevor es abgeschlossen ist, und damit system () Aufruf in Ihrem Skript wird nicht wieder (beachten Sie, dass system () führt eine nur perl Prozess in der gleichen Weise wie andere Prozesse). Wenn Sie die Ausfahrt () tritt nach dem Einschalten des Systems (), können Sie davon ausgehen, es wird nur dann ausgeführt, wenn B.pl Ausgänge aus welchem Grund auch immer.

Haben Sie versucht, herauszufinden, ob dies der Fall ist?
B.pl ist kein Hintergrund, seine ein normaler Benutzer-Skript.

i qoute von perldoc für System "... tut genau dasselbe wie exec LISTE, es sei denn, dass eine Gabel erfolgt zuerst, und der Parent-Prozess wartet auf das Kind zur vollständigen ...." Ich kann also davon ausgehen, dass mein erstes Skript warten B.pl bis zum Ende vor dem Beenden.

perldoc der Eintrag für exec sagt: ".. Die Funktion exec führt ein Kommando-und kehrt nie -". Deshalb kann ich davon ausgehen, dass, nachdem sie fordert B.pl, das aufrufende Skript wird beendet.

Meine Intention ist es, nicht zu warten, bis zum Ende B.pl, (dh, läuft B.pl und der Anrufer-Skript selbst Ausfahrt) also ich sollte exec? Alle ziehen den Rücken?
  #4 (permalink)  
Old 02-06-2007
karlsworld karlsworld is offline
Registrierte Nutzer
  
 

Join Date: Feb 2007
Beiträge: 6
Ich mag, dass ein anderer Dateien zu Beginn des Haupt-Skript dann rufen Sie die Routinen in der sie als notwendig. Dies kann, muss aber nicht der beste Weg, aber es funktioniert sehr gut für mich. By the way, wenn ich mich richtig erinnere, ich glaube, dass die Datei, die Sie gerade Aufruf nicht notwendigerweise die Norm perl Script-Header, nicht zu Ende "pl" oder "cgi", und muss nicht mehr ausführbar Berechtigungen.

(main_file.pl)

#! / usr / bin /perl
erforderlich ist "other_file.pl";
& do_something;
& do_something_else;
exit;

(other_file.pl)

Unter do_something (
print "Content-Type: text / html \ n \ n";
print "ok";
)
Unter do_something_else (
print "Content-Type: text / html \ n \ n";
print "OK" ";
)
1; # return true



Ich habe nicht testen, ob Skript, aber ich weiß es wirklich nahe, was ich tue.
  #5 (permalink)  
Old 05-23-2009
lbailey lbailey is offline
Registrierte Nutzer
  
 

Registriert seit: Mai 2009
Beiträge: 2
Zitat:
Zitat von karlsworld View Post
Ich habe nicht testen, ob Skript, aber ich weiß es wirklich nahe, was ich tue.
Dank karlsworld,
Ich habe den Code ein, und es hat funktioniert, aber ich brauche die Argumente, und einfach, sie (in der gleichen Weise wie Sie mit einer Subroutine) funktioniert nicht. Dies ist meine erste Erfahrung mit perl, Und die sind so dumm Strassensperren frustrierend!

Sorry - ich sah überall und versucht eine Reihe von Ansätzen, ohne Erfolg. Jede Hilfe wird gebeten!
  #6 (permalink)  
Old 05-24-2009
curleb curleb is offline
Registrierte Nutzer
  
 

Join Date: März 2008
Ort: Hier, in meinem Elfenbeinturm ...
Beiträge: 68
Picking Up Perl und Robert's Perl Tutorial. Online-Bücher, die beide mit einer sehr ausführlichen Überblick über das Thema für newbs auf die Sprache.
  #7 (permalink)  
Old 05-24-2009
lbailey lbailey is offline
Registrierte Nutzer
  
 

Registriert seit: Mai 2009
Beiträge: 2
Eigentlich "Picking Up Perl"Nicht einmal erwähnt fordert andere perl Skripte, und "Robert's Perl Tutorial "ist für Windows und es nur erwähnt, tun es mit den Modulen. Dennoch, ich, es zu benutzen und das Skript zu karlsworld Stück gemeinsam etwas, das funktioniert.

Also, habe ich vergessen zu erwähnen, dass ich nicht verwenden wollen, system (), da brauche ich, um mehrere Dateinamen und möchten in der Lage zu akzeptieren, ohne die Räume Kopfschmerzen, herauszufinden, welche Teile gehen in das Ziel-Methode.

Immerhin. Für die Lesung in die Zukunft, das funktioniert:

(main_file.pl)
Code:
#!/usr/bin/perl
use strict;
use warnings;
require "other_file.pl";

my $string = "Hello";
my $string2 = "Hello again";

do_something($string);
my ($s1, $s2) = do_something_else($string2);
print "Received: $s1 $s2\n";

exit;
(other_file.pl)
Code:
sub do_something($){
        my $string = $_[0];
        print "Printing: $string\n";
}

sub do_something_else($){
        my $string = $_[0];
        print "Now printing: $string\n";
        my $yyyy = 2009;
        return ($string, $yyyy);
}

1; # return true
Und die Ausgabe lautet:
Druck: hallo
Jetzt Druck: hallo wieder
Received: hallo wieder 2009
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 09:54 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0