• Publicidad

Añadir variable de entorno

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Añadir variable de entorno

Notapor fgalves » 2006-10-14 17:41 @778

Pues estoy intentando lanzar un script en Perl de mi trabajo (allá trabajamos con estaciones SUN) en mi casa. Tengo Linux Knoppix Live CD y tengo un problema con una variable de entorno, que aqui no existe.
¿Cómo puedo anadir una nueva variable?
En este caso, la variable se llama $ENV_ROOT y su valor debe ser puesto a /home/knoppix

Gracias por adelantado por estar dando la tabarra.

Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor explorer » 2006-10-14 20:46 @907

Puedes colocarla antes de llamar al script:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
explorer@casa:~/> ENV_ROOT="/home/knoppix" perl -le 'print $ENV{ENV_ROOT}'
/home/knoppix
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

problema con variable de entorno en linux

Notapor fgalves » 2006-10-15 12:16 @553

Pues tengo un script con las primeras lineas en perl siguientes

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use lib $ENV{"ENV_ROOT"}."/FqStatsReports/Services/Projection";
use lib $ENV{"ENV_ROOT"}."/FqStatsReports/Services/Aggregation";
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4



El hecho es que he puesto el valor correcto a la variable de entorno ENV_ROOT que debe ser el siguiente:

/ramdisk/home/knoppix

El mensaje de error que me aparece es el siguiente al lanzar dichos script:

Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 6.
Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 7.

alguien tiene alguna idea??

Gracias!!!
Walrus
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor fgalves » 2006-10-15 12:40 @569

el caso es que la variable ENV_ROOT esta correctamente incicializada pues haciendo un:

echo $ENV_ROOT des del terminal, me muestra exactamente lo que quiero:

/ramdisk/home/knoppix


En el script, he anadido la linea siguiente justo antes de los "use lib" anteriores:

print STDOUT $ENV{"ENV_ROOT"}
pero ahora el error que me muestra es

syntax error at FqStatsDailyReports.pl line 6, near ""ENV_ROOT")"

a ver si me echais una mano!!!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor Perl user » 2006-10-15 12:50 @576

fgalves escribiste:el caso es que la variable ENV_ROOT esta correctamente incicializada pues haciendo un:

echo $ENV_ROOT des del terminal, me muestra exactamente lo que quiero:

/ramdisk/home/knoppix


En el script, he anadido la linea siguiente justo antes de los "use lib" anteriores:

print STDOUT $ENV{"ENV_ROOT"}
pero ahora el error que me muestra es

syntax error at FqStatsDailyReports.pl line 6, near ""ENV_ROOT")"

a ver si me echais una mano!!!
Felipe


Por qué no pegas una porción del código que estás utilizando? Esa variable la inserta algún otro proceso?

Por cierto, no es necesario que le digas a print que mande tu salida a STDOUT, por default lo hace.

Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Notapor fgalves » 2006-10-15 12:57 @581

pues estas son las primeras lineas del script perl que lanzo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

use strict;
use Getopt::Long;

use lib $ENV{"ENV_ROOT"}."/FqStatsReports/Services/Projection";
use lib $ENV{"ENV_ROOT"}."/FqStatsReports/Services/Aggregation";
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


No se si se trate de algun problema con las lib Projection y Aggregation que contienen una serie de perl modules.

Estoy bastante extranado con el mensaje de error pues me parece ignorar completamente la variable de entorno ENV_ROOT, cuando esta correctamente definida.

Gracias!!!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor fgalves » 2006-10-15 13:18 @596

Pues he aqui el resultado de la ejecucion del script cuyo inicio poste anteriormente:

Use of uninitialized value in concatenation (.) or string at /ramdisk/home/knoppix/FqStatsTools/Scripts/Extract.pm line 15.
Use of uninitialized value in concatenation (.) or string at /ramdisk/home/knoppix/FqStatsTools/Scripts/Decoder.pm line 19.
Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 6.
Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 7.
Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 23.
Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 27.
Use of uninitialized value in concatenation (.) or string at FqStatsDailyReports.pl line 237.

Simplemente ha cambiado el orden de los errores. Sigue apareciendo los errores correspondientes a la linea 6 y 7 pero ya no en primer lugar.
Voy avanzando?

Gracias!
Walrus
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Notapor explorer » 2006-10-15 13:19 @596

A ver... ¿has hecho un print $ENV{ENV_ROOT};?
Si no sale nada, es que la variable no es exportada a los procesos que se ejecutan desde esa shell. Quizás tengas que hacer un 'export ENV_ROOT' antes de ejecutar el script.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2006-10-15 17:00 @750

Al exportar el path no habra mayor cambio, sugiero que mires los archivos de init.
Además, al ser un Live CD la variable será modificada, más bein no será modificada es decir los cambios hecho seran nulos.
¿Por qué no usas un Live CD de OpenSolaris?
Puedes usar schillix , belenix o mira en la pagina oficial de OpenSalaris que hay muchos mas.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2006-10-15 18:29 @812

¿Quien ha hablado de exportar el path? Se le ha sugerido que exporte la variable ENV_ROOT. Según la definición de entorno para los shell tipo bash: "El entorno heredado por cualquier comando consiste en el entorno inicial del shell, cuyos valores puede ser modificados, menos los eliminados por el comando unset, más los agregados por los comandos export y declare -x".
¿Qué es lo que tiene que mirar en los ficheros init?
Aunque tenga un Live CD, puede haber realizado la instalación de la distribución.
¿Qué es el OpenSalaris?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 6 invitados

cron