The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Chiamata di un C-froma funzione script Perl jisha Shell scripting e di programmazione 9 05-08-2008 01:59 AM
Chiamata Winzip da script perl MobileUser Shell scripting e di programmazione 5 04-04-2007 04:51 AM
chiamando uno script di shell da perl gurukottur Shell scripting e di programmazione 3 10-05-2006 12:48 PM
Riquadro A script perl chiamando casella B's script di shell new2ss Shell scripting e di programmazione 1 09-13-2006 07:17 AM
Chiamata in CGI Perl Shell script [urgente] DeepakXavier Shell scripting e di programmazione 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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 02-06-2007
new2ss new2ss is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2006
Interventi: 133
Chiamata da uno script perl uno script perl

Codice:
printf(”Going to call another script... \n”);
system(”/my_dir/B.pl”); # call another perl script B.pl
exit;
Ciao a tutti, al di sopra è un esempio che sto usando per chiamare un altro perl script di corrente perl script.

Ho due preoccupazioni:
1) Il presente esiste un modo migliore di raggiungere lo stesso scopo (ad esempio, chiamare un altro perl da uno script perl script)?

2) vi è un avviso di uscita di comando di script nella mia vocazione. Intende l'uscita comando essere eseguito solo dopo che è stato completato B.pl O verrà eseguito immediatamente B.pl si chiama?
  #2 (permalink)  
Old 02-06-2007
cbkihong cbkihong is offline Forum Advisor  
Advisor
  
 

Join Date: Sep 2002
Posizione: Hong Kong, Cina
Interventi: 1.624
Citazione:
Originalmente inviato da new2ss
1) Il presente esiste un modo migliore di raggiungere lo stesso scopo (ad esempio, chiamare un altro perl da uno script perl script)?
Sì. Usa require ().

Citazione:
Originalmente inviato da new2ss
2) vi è un avviso di uscita di comando di script nella mia vocazione. Intende l'uscita comando essere eseguito solo dopo che è stato completato B.pl O verrà eseguito immediatamente B.pl si chiama?
Penso che se non si corre il tuo B.pl in modalità background (come quella di demoni, per esempio), la perl processo di B.pl non uscire prima del completamento, e quindi del sistema () nel vostro chiamando lo script non ritorno (si noti che sistema () esegue un solo perl processo allo stesso modo di altri processi). Se l'uscita () si verifica dopo il sistema (), si può presumere che non saranno eseguiti quando B.pl uscite per qualsiasi ragione.

Ti è cercare di scoprire se tale sia il caso?
  #3 (permalink)  
Old 02-06-2007
new2ss new2ss is offline
Utente Registrato
  
 

Iscriviti Data: gennaio 2006
Interventi: 133
Citazione:
Originalmente inviato da cbkihong
Sì. Usa require ().

Penso che se non si corre il tuo B.pl in modalità background (come quella di demoni, per esempio), la perl processo di B.pl non uscire prima del completamento, e quindi del sistema () nel vostro chiamando lo script non ritorno (si noti che sistema () esegue un solo perl processo allo stesso modo di altri processi). Se l'uscita () si verifica dopo il sistema (), si può presumere che non saranno eseguiti quando B.pl uscite per qualsiasi ragione.

Ti è cercare di scoprire se tale sia il caso?
B.pl non è una modalità di sfondo, il suo script di un utente normale.

i qoute da perldoc per il sistema "... Non esattamente la stessa cosa come exec ELENCO, ad eccezione del fatto che la forchetta è fatto prima, e il processo padre attende il processo figlio per completare ...." In modo che io possa prendere il mio primo script attendere B.pl alla fine prima di uscire.

l'ingresso per perldoc exec dice: ".. La funzione exec esegue un sistema di comando e non ritorna mai -". Pertanto posso supporre che dopo essere chiamate B.pl, la convocazione script uscita.

La mia intenzione non è quella di attendere B.pl alla fine, (ad esempio, gestisce il chiamante e B.pl script uscita), pertanto dovrebbe usare i exec? Qualsiasi trarre spalle?
  #4 (permalink)  
Old 02-06-2007
karlsworld karlsworld is offline
Utente Registrato
  
 

Iscriviti Data: febbraio 2007
Interventi: 6
Mi piace di richiedere qualsiasi altro file all'inizio degli script principale quindi chiamare la routine in loro, se necessario. Questo può o non può essere il modo migliore, ma funziona abbastanza bene per me. A proposito, se non ricordo male, credo che il file che si sta chiamando non deve necessariamente standard perl script di intestazione, non ha per fine a "pl" o "cgi", e non ha bisogno di autorizzazioni eseguibile.

(main_file.pl)

#! / usr / bin /perl
richiedono "other_file.pl";
& do_something;
& do_something_else;
uscita;

(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 di nuovo";
)
1; return true #



I test che non ha lo script, ma so che è vero e proprio vicino a quello che faccio.
  #5 (permalink)  
Old 05-23-2009
lbailey lbailey is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 2
Citazione:
Originalmente inviato da karlsworld View Post
I test che non ha lo script, ma so che è vero e proprio vicino a quello che faccio.
Grazie karlsworld,
Ho eseguito il codice e ha funzionato, ma ho bisogno di passare argomenti, e semplicemente aggiungendo loro (nello stesso modo come si fa con una subroutine) non funziona. Questa è la mia prima esperienza con perl, E la inane blocchi stradali sono così frustrante!

Siamo spiacenti - Ho guardato dappertutto e ho cercato un po 'di approcci, senza successo. Qualsiasi aiuto sarebbe apprezzato!
  #6 (permalink)  
Old 05-24-2009
curleb curleb is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2008
Località: Qui, nella mia torre d'avorio ...
Interventi: 68
Picking Up Perl e Robert's Perl Tutorial. Libri on-line, sia con una copertura molto approfondita del tema per newbs per la lingua.
  #7 (permalink)  
Old 05-24-2009
lbailey lbailey is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 2
In realtà "Picking Up Perl"Non menziona neppure chiamare altri perl script, e "Robert's Perl Tutorial "è per Windows e si parla di farlo solo con i moduli. Tuttavia, sono riuscito a utilizzarlo e karlsworld di script per mettere insieme qualcosa che funziona.

Inoltre, ho dimenticato di dire che non voglio usare sistema (), perché ho bisogno di passare più nomi di file e si desidera essere in grado di accettare gli spazi senza il mal di testa di capire che andare in pezzi il target metodo.

Comunque. Per coloro che la lettura di questo in futuro, questo funziona:

(main_file.pl)
Codice:
#!/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)
Codice:
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
E l'output è il seguente:
Stampa: Ciao
Ora la stampa: Ciao di nuovo
Received: Ciao di nuovo 2009
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 04:23 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0