Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema al ejecutar un comando del sistema (system)

Estas en el tema de Problema al ejecutar un comando del sistema (system) en el foro de Programación General en Foros del Web. Buenos días, Sabéis por qué no me valida esta orden perl? @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PERL: Ver original system ( "cat /etc/awstats/web/$file | grep -v '#' ...
  #1 (permalink)  
Antiguo 28/06/2010, 06:04
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Problema al ejecutar un comando del sistema (system)

Buenos días,

Sabéis por qué no me valida esta orden perl?

Código PERL:
Ver original
  1. system("cat /etc/awstats/web/$file | grep -v '#' | sed '/^$/d'");

Me da error:

sed: -e expression #1, char 2: unterminated address regex

Gracias de antemano
  #2 (permalink)  
Antiguo 28/06/2010, 07:15
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Problema al ejecutar un comando del sistema (system)

Conseguido, faltaba escapar el último $

system("cat /etc/awstats/web/$file | grep -v '#' | sed '/^\$/d'");


Salu2!
  #3 (permalink)  
Antiguo 28/06/2010, 09:54
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: Problema al ejecutar un comando del sistema (system)

Y... ¿no es mejor hacerlo en Perl? Así, no dependes de la ejecución de 3 comandos externos, y el código será más portátil y rápido.
Código Perl:
Ver original
  1. open my $FICHERO, "</etc/awstats/web/$file"
  2.     or die "ERROR: No puedo abrir $file: $!\n";
  3.  
  4. while (<$FICHERO>) {
  5.     next if /^\s*#/;    # obviamos los comentarios
  6.     next if /^\s*$/;    # obviamos las líneas vacías o en blanco
  7.     # ...
  8. }
  9.  
  10. close $FICHERO;
__________________
JF^D Perl Programming en Español

Última edición por jferrero; 28/06/2010 a las 10:01
  #4 (permalink)  
Antiguo 29/06/2010, 01:40
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Problema al ejecutar un comando del sistema (system)

Cita:
Iniciado por jferrero Ver Mensaje
Y... ¿no es mejor hacerlo en Perl? Así, no dependes de la ejecución de 3 comandos externos, y el código será más portátil y rápido.
Código Perl:
Ver original
  1. open my $FICHERO, "</etc/awstats/web/$file"
  2.     or die "ERROR: No puedo abrir $file: $!\n";
  3.  
  4. while (<$FICHERO>) {
  5.     next if /^\s*#/;    # obviamos los comentarios
  6.     next if /^\s*$/;    # obviamos las líneas vacías o en blanco
  7.     # ...
  8. }
  9.  
  10. close $FICHERO;
Gracias, jferrero.

Sabes si puedo poner en el die estas 3 lineas, donde esta el die?
Código PERL:
Ver original
  1. or die "ERROR: No puedo abrir $file: $!\n";
  2.  
  3.         print colored(" [ERROR] >>> No existe el fichero introducido ",'bold red');
  4.         print color 'reset';
  5.         print "$file", colored(" en /etc/awstats/web/",'bold red'),"\n\n";

Gracias de antemano!
  #5 (permalink)  
Antiguo 29/06/2010, 02:42
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: Problema al ejecutar un comando del sistema (system)

Código Perl:
Ver original
  1. open my $FICHERO, "</etc/awstats/web/$file"
  2.     or do {
  3.         print colored(" [ERROR] >>> No existe el fichero introducido ",'bold red');
  4.         print color 'reset';
  5.         print "$file", colored(" en /etc/awstats/web/",'bold red'),"\n\n";
  6.         exit 1;
  7.     };
Código Perl:
Ver original
  1. open my $FICHERO, "</etc/awstats/web/$file"
  2.     or die
  3.           colored(" [ERROR] >>> No existe el fichero introducido ",'bold red')
  4.         . color('reset')
  5.         . "$file"
  6.         . colored(" en /etc/awstats/web/",'bold red')
  7.         . "\n\n"
  8.         ;
Hay varias formas...
__________________
JF^D Perl Programming en Español

Última edición por jferrero; 29/06/2010 a las 09:44
  #6 (permalink)  
Antiguo 29/06/2010, 08:06
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Problema al ejecutar un comando del sistema (system)

Buenas,

Lo intento de la primera forma pero no me compila

syntax error at ./perl_first_webstats.pl line 90, near "print"
syntax error at ./perl_first_webstats.pl line 104, near "}"
Execution of ./perl_first_webstats.pl aborted due to compilation errors.


Código PERL:
Ver original
  1. 81 sub Mostrar_Config_Actual {
  2.  82     local $SITE_DOMAIN;
  3.  83
  4.  84     print "\n--------------------------------------------------------------------------------\n";
  5.  85     print colored(" CONFIGURACION ACTUAL",'cyan'),"\n";
  6.  86     print "--------------------------------------------------------------------------------\n";
  7.  87     open my $FICHERO, "</etc/awstats/web/$file"
  8.  88         or {
  9.  89             print colored(" [ERROR] >>> No existe el fichero introducido ",'bold red');
  10.  90             print color 'reset';
  11.  91             print "$file", colored(" en /etc/awstats/web/",'bold red'),"\n\n";
  12.  92             exit 1;
  13.  93         }
  14.  94
  15.  95     while (<$FICHERO>) {
  16.  96         next if /^\s*#/;    # obviamos los comentarios
  17.  97         next if /^\s*$/;    # obviamos las lÃ*as vacÃ* o en blancoi
  18.  98         print $_;
  19.  99         }
  20. 100     close $FICHERO;
  21. 101
  22. 102     $SITE_DOMAIN=qx(grep -v '#' /etc/awstats/web/$file | grep -i SiteDomain | cut -d'=' -f2 | sed 's/"//g');
  23. 103     print "\n--------------------------------------------------------------------------------\n";
  24. 104 }

Muchas gracias de antemano!
  #7 (permalink)  
Antiguo 29/06/2010, 09:00
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 524
Antigüedad: 17 años, 11 meses
Puntos: 11
Respuesta: Problema al ejecutar un comando del sistema (system)

Perdón... creo que faltó algo...

Cambia
Código Perl:
Ver original
  1. or {
por
Código Perl:
Ver original
  1. or do {
y luego, en la llave final de la línea 93, le agregas un punto y coma.
__________________
JF^D Perl Programming en Español
  #8 (permalink)  
Antiguo 29/06/2010, 09:38
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Problema al ejecutar un comando del sistema (system)

Muchas gracias jferrero! aprendiendo cada día!

Etiquetas: comando, ejecutar, system, sitemap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.