Variables del sistema.

Una variable es un pequeño pedazo de memoria que se reservará para determinada función y a la que se le va a asignar un valor, el cual podrá ser: un número,
una ruta de directorios…, etc.) que podrá ser leído, consultado o incluso modificado.

Tenemos tres tipos de variables: De entorno, que forman parte del entorno del sistema, incorporadas, que las proporciona el sistema y no pueden ser modificadas
con un programa o la shell, y de usuario, las cuales sí se pueden modificar por la shell. Un ejemplo de variable es PATH, que los que en alguna ocasión
hayan usado el MS-DOS o el FreeDos ya conocerán, la cual define las rutas que deben ser «miradas» por la shell para buscar órdenes o ejecutables más fácilmente
evitando el tener que teclear complejas vías de acceso.

En una sesión de trabajo las variables de entorno en la shell son referencias a valores. Existen dos tipos: locales y globales: Las locales Se definen en
la Shell actual y solamente son conocidas por esta en la sesión que esté vigente. Las globales, en cambio, son exportadas desde un proceso activo a todos
los procesos hijos.

$ echo $PATH

/bin:/usr/bin:/usr/X11R6/bin:/home/quetzatl/bin

La orden anterior podría estar mostrando un path típico del sistema. Mira con atención el uso del carácter $; el cual Indica el principio del nombre de
una variable shell, ya que, sin él, la orden echo de volvería únicamente la cadena de texto pasada a continuación. De manera que siempre que queramos ver
el contenido de una variable debemos usar el signo $.

Definir Variables:

$ a=gato

La variable tiene un nombre: a, y un valor: gato. Fíjate en que no debe dejar espa-cios entre el nombre, el igual y el valor. Tras haberla definido podremos
usar el valor de esta variable refiriéndonos a ella por su nombre.

Entonces: ¿dónde se podrán utilizar variables de este modo? Pues bien, las podremos utilizar en la ejecución de órdenes desde el indicativo del sistema
(prompt), por ejemplo, o en el uso de scripts de la shell. Pero, hay que tener también muy presente que, las variables de usuario creadas de este modo
solamente funcionan en la shell (o subshell) en que se hayan definido.

Si comprobamos el valor de la variable a=gato que definimos más arriba veremos que está correcto, pero si después lanzamos otro shell y volvemos a hacer
la comprobación podremos advertir que aquí ya no aparece. La variable a solo es visible desde la shell donde se haya definido Ya que es una variable local.

Si queremos o necesitamos conocer las variables disponibles podremos ver una lista de las mismas utilizando la orden env, con la que podremos ver una lista
de variables iniciales del entorno o globales y con la orden set veremos una lista de variables locales.

A fin de cuentas, en cada una de las shell que se vayan abriendo tendremos acceso solamente a las variables locales que tengan definidas. Es muy importante
tener en cuenta esto de cara a la ejecución de aquellos scripts que, por cualquier razón, requieran del uso de una variable determinada.

Exportar el Entorno

Si se diera el caso de necesitar, por cualquier motivo, que una variable sea accesible por programas ejecutados en otras shells, sería imprescindible exportarla.

La solución a este pequeño problema es lo que se conoce como exportar variables. La orden export es capaz de hacer dos cosas:

1.Sin argumentos muestra una lista con las variables exportadas.

2.Convierte las variables (locales) en globales, para que sus valores sean accesibles por cada una de las shell que se genere.

echo $a gato

export a

echo $a gato

Ahora el valor de la variable a podrá ser leído desde otra shell cualquiera o subshell y también por programas que sean ejecutados en ellas.

La exportación del entorno de variables posiblemente lo necesitéis usar bastante más a menudo de lo que seguramente en un principio podríais estar pensando,
pero como se acaba de ver, no es cosa del otro mundo. Para aquellos que hayáis programado en alguna ocasión, el mundo de las variables no os dirá nada
de nuevo, para los que no, espero que no se os haya atragantado demasiado, a fin de cuentas las variables son algo bastante intuitivo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.