The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Ringe et C-funksjon froma Perl-skript jisha Shell programmering og Skripting 9 05-08-2008 01:59
Ringekonto Winzip fra Perl-skript MobileUser Shell programmering og Skripting 5 04-04-2007 04:51
ringer et shell script fra perl gurukottur Shell programmering og Skripting 3 10-05-2006 12:48
Box A perl scriptet ringer boksen B's shell script new2ss Shell programmering og Skripting 1 09-13-2006 07:17
Ringekonto CGI Perl i Shell script [haster] DeepakXavier Shell programmering og Skripting 0 10-09-2005 02:51

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 02-06-2007
new2ss new2ss is offline
Registrert bruker
  
 

Bli Date: Jan 2006
Innlegg: 133
Ringe en perl skript fra et perl script

Code:
printf(”Going to call another script... \n”);
system(”/my_dir/B.pl”); # call another perl script B.pl
exit;
Hei alle, ovenfor er et eksempel som jeg bruker til å ringe en annen perl skript fra gjeldende perl skriptet.

Jeg har to bekymringer:
1) Det finnes en bedre metode for å oppnå samme formål (f.eks ringe en annen perl skript fra en perl script)?

2) Legg merke til det er en exit-kommandoen i mitt kall skriptet. Vil avslutte kommandoen bli utført først etter at B.pl er fullført eller det vil bli gjennomført umiddelbart B.pl kalles?
  #2 (permalink)  
Old 02-06-2007
cbkihong cbkihong is offline Forum Advisor  
RÃ¥dgiver
  
 

Bli Dato: Sep 2002
Sted: Hong Kong, Kina
Innlegg: 1624
Sitat:
Originally Posted by new2ss
1) Det finnes en bedre metode for å oppnå samme formål (f.eks ringe en annen perl skript fra en perl script)?
Ja. Bruk krever ().

Sitat:
Originally Posted by new2ss
2) Legg merke til det er en exit-kommandoen i mitt kall skriptet. Vil avslutte kommandoen bli utført først etter at B.pl er fullført eller det vil bli gjennomført umiddelbart B.pl kalles?
Jeg tror ikke dine B.pl går seg i bakgrunnen modus (slik som for daemoner, for eksempel), blir perl prosessen for B.pl vil ikke gå ut før den er ferdig, og dermed system () i ringer Skriptet vil ikke tilbake (merk at systemet () bare utfører en perl prosessen på samme måte som andre prosesser). Hvis exit () skjer etter system (), kan du anta at det vil kun bli henrettet når B.pl utganger uansett grunn.

Har du prøvd å finne ut om det er tilfelle?
  #3 (permalink)  
Old 02-06-2007
new2ss new2ss is offline
Registrert bruker
  
 

Bli Date: Jan 2006
Innlegg: 133
Sitat:
Originally Posted by cbkihong
Ja. Bruk krever ().

Jeg tror ikke dine B.pl går seg i bakgrunnen modus (slik som for daemoner, for eksempel), blir perl prosessen for B.pl vil ikke gå ut før den er ferdig, og dermed system () i ringer Skriptet vil ikke tilbake (merk at systemet () bare utfører en perl prosessen på samme måte som andre prosesser). Hvis exit () skjer etter system (), kan du anta at det vil kun bli henrettet når B.pl utganger uansett grunn.

Har du prøvd å finne ut om det er tilfelle?
B.pl er ikke en bakgrunn modus, dens en normal bruker skriptet.

Jeg qoute fra perldoc for systemet "... Har akkurat det samme som exec listen, bortsett fra at en gaffel gjøres først, og den overordnede prosessen venter for barnet prosess å fullføre ...." Så jeg kan ta det at min første skriptet vil vente på B.pl er ferdig før du går videre.

den perldoc oppføring for exec sier ".. Den exec funksjonen utfører et system kommandoen og aldri tilbake -". Derfor kan jeg anta at når det ringer B.pl, kallehendelsen skriptet vil avslutte.

Min hensikt er ikke å vente på B.pl til slutt, (dvs. kjører B.pl og ringer script selv exit) derfor jeg skal bruke exec? Eventuelle trekke tilbake?
  #4 (permalink)  
Old 02-06-2007
karlsworld karlsworld is offline
Registrert bruker
  
 

Bli Date: Feb 2007
Innlegg: 6
Jeg liker å kreve at alle andre filer på begynnelsen av hovedårsakene script deretter bare ringe rutiner i dem ved behov. Dette kan være den beste måten, men det fungerer ganske bra for meg. For øvrig, hvis jeg husker riktig, tror jeg filen du ringer ikke nødvendigvis standard perl script overskrift, trenger ikke å slutte med "pl" eller "cgi", og du trenger ikke kjørbare tillatelser.

(main_file.pl)

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

(other_file.pl)

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



I didn't test som script, men jeg vet at det er virkelig nær det jeg gjør.
  #5 (permalink)  
Old 05-23-2009
lbailey lbailey is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 2
Sitat:
Originally Posted by karlsworld View Post
I didn't test som script, men jeg vet at det er virkelig nær det jeg gjør.
Takk karlsworld,
Jeg kjørte inn koden, og det virket, men jeg trenger å passere argumenter, og å legge dem (på samme måte som du gjør med en subroutine) fungerer ikke. Dette er min første erfaring med perlOg tåpelig roadblocks er så frustrerende!

Beklager - Jeg så overalt og prøvd en rekke tilnærminger, uten å lykkes. Eventuelle hjelpe ville være verdsatt!
  #6 (permalink)  
Old 05-24-2009
curleb curleb is offline
Registrert bruker
  
 

Bli Date: Mar 2008
Sted: Her, i mitt Ivory Tower ...
Innlegg: 68
Plukke opp Perl og Robert's Perl Opplæringen. Online bøker, både med en svært grundig dekning av emnet for newbs til språket.
  #7 (permalink)  
Old 05-24-2009
lbailey lbailey is offline
Registrert bruker
  
 

Bli Dato: mai 2009
Innlegg: 2
Egentlig "plukke opp Perl"Ikke engang nevne ringe andre perl scripts, og "Roberts Perl Tutorial "er for Windows, og det bare nevner gjøre det med moduler. Men jeg klarte å bruke det og karlsworld står script til stykket sammen noe som virker.

Også, jeg glemte å nevne at jeg ikke ønsker å bruke systemet () fordi jeg må passere flere filnavn og vil kunne godta mellomrom uten hodepine av å finne ut hvilke brikker gå sammen i målet metode.

Uansett. For de som leser dette i fremtiden, dette fungerer:

(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
Og produksjon er:
Utskrift: Hei!
NÃ¥ utskrift: Hei igjen
Mottatt: Hei igjen 2009
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er PÃ¥
Smilefjes er PÃ¥
[IMG] koden PÃ¥
HTML-koden Av
Pingbacks er PÃ¥
Refbacks er PÃ¥




Alle klokkeslett er GMT -4. NÃ¥ er klokken 06:58.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0