Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: @synthesize en 11 Julio 2010, 06:32 am



Título: Variables de entorno (Y un guiño a perl)
Publicado por: @synthesize en 11 Julio 2010, 06:32 am
(Extraído de mi blog)

A Bash, lo conocemos la mayoría de los usuarios de GNU/Linux. Podéis repasar algunos de los comandos básicos para pasar el rato con este inseparable amigo.

Sobre Perl, decir que es un lenguaje de Scripting, multiparadigma, bastante parecido a C. Mas info, aquí.

Voy a explicar como "fabricar" nuestros propios comandos. Estas técnicas, son muy usadas en el oscuro mundo de la programación (Hace poco, leía en un libro como practican un desbordamiento de buffer en un programa en C, con la ayuda de Perl)

Aquí solo voy a explicar como añadir variables de entorno, suponiendo claro, que estáis bajo GNU/Linux.

La forma de añadir variables al entorno bash, es la siguiente:

    export NOMBRE_VARIABLE=Dato

Podemos usar el comando env para ver todas las variables de entorno del sistema. Al ser una lista, generalmente, bastante larga, recomiendo direccionar el flujo de datos a un archivo.

    env > /home/serch/Escritorio/env1.txt

(Sustituir mi usuario por el vuestro, o la ruta por la que queráis).

Ahora, vamos a proceder a guardar nuestra primera variable de entorno, la cual, al ser llamada, mostrará una cadena.

    export VAR1=Hi_world

Para llamar a nuestra variable, usamos el comando echo.

    echo $VAR1

Lo que nos devolverá lo siguiente:

    serch@serch-server:~$ echo $VAR1
    Hi_world

También podemos guardar variables de entorno como comandos. Por ejemplo, para ejecutar el comando ps -aux, podemos hacer:

    export VAR2="ps -aux"

Observamos que para guardar comandos, necesitamos las comillas. Para llamar a esta variable, no nos hace falta echo, basta solo con invocarla.

    serch@serch-server:~$ $VAR2
    Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.0 2800 1644 ? Ss 04:54 0:00 /sbin/init
    root 2 0.0 0.0 0 0 ? S 04:54 0:00 [kthreadd]
    ...


(He acortado la línea USER PID.. para poder mostrarla en 1 sola línea, y no he imprimido, obviamente, toda la lista de procesos).

Podríamos usar también una redirección de flujo para nuestra variable $VAR2, con lo que nos enviaría todos los datos al archivo que deseemos. (Ahora imaginad el buen uso que le podéis dar a las variables de entorno, sobretodo si os conectáis vía shh desde un dispositivo móvil, y no os apetece escribir comandos largos desde un mini-teclado)

Ahora vamos a crear una variable de entorno usando perl. Dentro de Perl tenemos la orden print, que para los que estéis dentro del mundo de la programación, sabréis bien lo que hace.

Para empezar, ejecutamos el siguiente comando

    perl -e 'print "Hola";'

Como vemos, nos muestra la cadena "Hola". Podemos indicar que una cadena se muestre X veces, ejecutando lo siguiente:

    perl -e 'print "Hola" x 20;'

Esta es una buena introducción a la base del Scripting, añadiendo variables de entorno y haciendo nuestros primeros pasos en Perl. En próximas entregas, mas y mejor.


Título: Re: Variables de entorno (Y un guiño a perl)
Publicado por: eduardogotti en 11 Julio 2010, 22:33 pm
Muy buena la info, llevo bastante tiempo programando en python y creo que ya es hora de meterme con perl!