The UNIX and Linux Forums  


Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Realización de una llamada a C-función desde una secuencia de comandos Perl JISHA Programación de scripts de shell y 9 05-08-2008 01:59 AM
Llamadas de Winzip script perl MobileUser Programación de scripts de shell y 5 04-04-2007 04:51 AM
llamar a un script de perl gurukottur Programación de scripts de shell y 3 10-05-2006 12:48 PM
Un cuadro del script de perl llamando la casilla B del script de shell new2ss Programación de scripts de shell y 1 09-13-2006 07:17 AM
Llamando CGI Perl en Shell script [urgente] DeepakXavier Programación de scripts de shell y 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 vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 02-06-2007
new2ss new2ss is offline
Usuario Registrado
  
 

Fecha: enero 2006
Puestos: 133
Llamar a un script en perl desde un script de perl


Código:
printf(Going to call another script... \n);
system(/my_dir/B.pl); # call another perl script B.pl
exit;

Hola a todos, es un ejemplo que estoy usando para llamar a otro perl guión de la actual perl guión.

Tengo dos preocupaciones:
1) Esta existe una mejor forma de lograr el mismo fin (es decir, llamar a otra perl secuencia de comandos desde un perl script)?

2) Aviso de salida hay un comando en el script de mi vocación. ¿La salida de comando se ejecutará sólo después de completar B.pl O será ejecutado inmediatamente B.pl se llama?
  #2 (Enlace permanente)  
Old 02-06-2007
cbkihong cbkihong is offline Forum Advisor  
Asesor
  
 

Fecha: Sep 2002
Ubicación: Hong Kong, China
Puestos: 1.624
Cita:
Publicado originalmente por new2ss
1) Esta existe una mejor forma de lograr el mismo fin (es decir, llamar a otra perl secuencia de comandos desde un perl script)?
Sí. Usar require ().

Cita:
Publicado originalmente por new2ss
2) Aviso de salida hay un comando en el script de mi vocación. ¿La salida de comando se ejecutará sólo después de completar B.pl O será ejecutado inmediatamente B.pl se llama?
Creo que a menos que su B.pl ejecuta en segundo plano (como la de los demonios, por ejemplo), la perl B.pl proceso para no salir antes de que termine y, por ende, del sistema () en su secuencia de comandos llamando no devolución (nota de que el sistema () sólo se ejecuta una perl proceso de la misma manera que otros procesos). Si la salida () se produce después de sistema (), puede suponer que sólo se ejecuta cuando sale B.pl por la razón que sea.

¿Te tratan de averiguar si ese es el caso?
  #3 (Enlace permanente)  
Old 02-06-2007
new2ss new2ss is offline
Usuario Registrado
  
 

Fecha: enero 2006
Puestos: 133
Cita:
Publicado originalmente por cbkihong
Sí. Usar require ().

Creo que a menos que su B.pl ejecuta en segundo plano (como la de los demonios, por ejemplo), la perl B.pl proceso para no salir antes de que termine y, por ende, del sistema () en su secuencia de comandos llamando no devolución (nota de que el sistema () sólo se ejecuta una perl proceso de la misma manera que otros procesos). Si la salida () se produce después de sistema (), puede suponer que sólo se ejecuta cuando sale B.pl por la razón que sea.

¿Te tratan de averiguar si ese es el caso?
B.pl no es un segundo plano, su secuencia de comandos de un usuario normal.

i qoute de perldoc del sistema "... hace exactamente lo mismo que exec LISTA, salvo que un tenedor se hace en primer lugar, y el proceso padre espera que el proceso hijo para completar ...." Así que puedo entender que mi primer script B.pl a esperar a que termine antes de salir.

la entrada para perldoc exec dice: ".. La función exec ejecuta un sistema de mando y no vuelve nunca -". Por lo tanto, puedo suponer que después de que las llamadas B.pl, llamando a la secuencia de comandos de salida.

Mi intención es no esperar a que B.pl hasta el final, (es decir, corre y la persona que llama B.pl propio script de salida), por lo tanto debe usar exec i? Cualquier señalar la espalda?
  #4 (Enlace permanente)  
Old 02-06-2007
karlsworld karlsworld is offline
Usuario Registrado
  
 

Fecha: febrero 2007
Publicaciones: 6
Me gusta exigir a cualquier otro archivo en el inicio de la secuencia de comandos entonces llamar a la rutina en ellos cuando sea necesario. Esto puede o no ser la mejor manera, pero funciona bastante bien para mí. Por cierto, si no recuerdo mal, creo que el archivo que está llamando no necesariamente el nivel perl script de cabecera, no tiene que terminar en "pl" o "cgi", y no necesita permisos ejecutable.

(main_file.pl)

#! / usr / bin /perl
exigir "other_file.pl";
y do_something;
y do_something_else;
salida;

(other_file.pl)

do_something sub (
print "Content-type: text / html \ n \ n";
print "ok";
)
do_something_else sub (
print "Content-type: text / html \ n \ n";
print "bien de nuevo";
)
1; return true #



No he probado el script, pero sé que es muy cerca de lo que hago.
  #5 (Enlace permanente)  
Old 05-23-2009
lbailey lbailey is offline
Usuario Registrado
  
 

Fecha: mayo 2009
Publicaciones: 2
Cita:
Publicado originalmente por karlsworld View Post
No he probado el script, pero sé que es muy cerca de lo que hago.
Gracias karlsworld,
Me encontré el código y funcionó, pero tengo que pasar argumentos, y sólo añadir (en la misma forma como lo hace con una subrutina) no funciona. Esta es mi primera experiencia con perl, Y la inanidad de carretera son muy frustrante!

Lo sentimos - Miré en todas partes y trató de un montón de enfoques, sin éxito. Cualquier ayuda será apreciada!
  #6 (Enlace permanente)  
Old 05-24-2009
curleb curleb is offline
Usuario Registrado
  
 

Fecha: marzo 2008
Ubicación: Aquí, en mi torre de marfil ...
Puestos: 68
Los primeros resultados Perl y Robert Perl Tutorial. Libros en línea, ambos con una cobertura exhaustiva del tema de newbs a la lengua.
  #7 (Enlace permanente)  
Old 05-24-2009
lbailey lbailey is offline
Usuario Registrado
  
 

Fecha: mayo 2009
Publicaciones: 2
En realidad "Los primeros resultados Perl"Ni siquiera menciona otras llamadas perl guiones, y "Robert's Perl Tutorial "es para Windows y sólo menciona que es lo que con los módulos. Sin embargo, me las arreglé para utilizarlo y karlsworld la secuencia de comandos para juntar algo que funciona.

Además, me olvidé de mencionar que no desea utilizar el sistema (), porque tengo que pasar múltiples nombres de archivo y desea estar en posición de aceptar el dolor de cabeza, sin espacios de calcular piezas que van de la mano en el método objetivo.

De todos modos. Para aquellos que lean esto en el futuro, esto funciona:

(main_file.pl)

Código:
#!/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)

Código:
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

Y la salida es:
Impresión: Hola
Ahora impresión: Hola de nuevo
Recibido: Hola de nuevo 2009
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 03:11 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0