Variables en Shell Script

domingo, 23 de octubre de 2011


Linux posee un interprete de comandos sumamente potente y versátil llamado Shell. La Shell es lo que nos permite comunicarnos con lo que hay debajo y así hablar con el Sistema Operativo. Gracias a este interprete de comandos podemos crear Scripts sumamente potentes y versátiles con los cuales administrar de forma mucho más fácil y automatizada el sistema.


¿Qué es un Script?
Vamos a buscar la definición más simple y concreta para esto. Es un archivo de texto ejecutable, que contiene una serie de comandos pre-definidos. Sirve para automatizar tareas, ya que se pueden configurar secuencias que ejecuten diversas tareas sin la intervención del usuario, más que para ejecutar el Script. El único requisito es que el archivo posea privilegios de ejecución. Todos los comandos escritos en el archivo serán ejecutados en el mismo orden en el cual fueron plasmados.

En este lenguaje se utiliza la # para poder dejar comentarios. Comentar siempre es importante para al momento de tener que hacer modificaciones o mejoras, podamos ver de forma organizada a que corresponde cada cosa acortando el tiempo de búsqueda.

echo: Este comando nos permite imprimir en pantalla o archivo el texto seleccionado. Veamos un ejemplo de este comando.

Ver en pantalla una frase:
#!/bin/sh
echo "Hola Mundo"


Enviar un texto a un archivo:
echo nameserver 192.168.0.1 >> /etc/resolv.conf

Más adelante veremos lo que significan las >>.

En los Scripts podemos integrar variables las cuales nos permiten dar un nombre a una porcion de memoria para utilizarlo más tarde.
La información puede ser almacenada en la RAM, La memoria RAM está dividida en pequeños sectores y cada sector tiene un número único llamado Dirección de Memoria que es utilizado para guardar nuestra información. El lenguaje de programación, permite asignarle un nombre, (alfanumérico), a esa dirección en memoria llamada “VARIABLE”. La forma de aplicar una variables es VARIABLE=variable sin dejar espacios y luego llamarla con el signo $.

Ejemplo:
#!/bin/sh
edad=23
echo "Tengo $edad años"


Dará como resultado: Tengo 23 años.

Existen 2 tipos de variables, las locales y exportadas.
  • Locales: Pueden ser accedidas solo por la Shell que ejecutó el Script.
  • Exportada: Puede ser accedida por ambas Shell y cualquier proceso hijo que sea iniciado por esa Shell.
Los comandos set, (lista todas las variables) y env, (muestra solo las variables exportadas) sirven para listar las variables definidas.
Si queremos hacer que una Variable creada por nosotros sea global, debemos ejecutar el comando export. Por ejemplo si tenemos la variable $nombre, podemos ejecutar “export nombre”. Podemos verificar que se haya integrado correctamente ejecutando “env | grep nombre”.

El SO posee variables pre-definidas a las cuales podremos acceder con solo lanzar el comando "echo variable"

Variables predefinidas:

DISPLAY: Utilizado por X para identificar donde correr una aplicación cliente
HISTFILE: Ruta al historial de bash de los Usuarios
HOME: Ruta al directorio personal del Usuario
LOGNAME: El nombre utilizado para iniciar sesión
PATH: Lista los directorios donde se encuentran los ejecutables utilizados por la Shell
PWD: Directorio de trabajo en el cual se encuentra parado el Usuario
SHELL: La Shell utilizada
TERM: La emulación de Terminal actual

BASH: Nombre del Shel l utilizado
BASH_VERSION: Versión del Shell utilizado


Variables especiales:

$!: Contiene el Número de Proceso(PID) del último Proceso
$$: Contiene el Número de Proceso (PID) de la Shell
$?: Contiene el valor que devolvió la última orden ejecutada. (0=Exitosa, 1=Falló)

Muchas veces necesitamos que la persona sentada en frente al PC coloque el valor de las variables, pero sería peligroso dejar que edite un archivo en el cual se encuentra el Script para que lo haga. Para satisfacer esta necesidad existe la opción "read". El comando read frenará el script hasta que el usuario escriba algo y eso que escriba lo almacenará como una variable a la cual previamente le habremos asignado un nombre. Vamos a verlo en un ejemplo:

Ejemplo:
#!/bin/sh

echo "Cuantas máquinas hay en la red?"
read maquinas


En este caso maquinas viene a ser el nombre de la variable y al ponerlo de esa forma esperará a que sea completado el dato y asignará el mismo a "maquinas". Si ponemos 10 podremos llamar a dicha variable colocando $maquinas y mostrará el número 10.

Con esto ya podremos manejar todas las variables necesarias para trabajar con el sistema de forma automatizada.

Artículos relacionados


Comments

One response to “ Variables en Shell Script ”
Post a Comment | Enviar comentarios ( Atom )

F. Cadena dijo...

Muy interesante, tengo tiempor queriendo aprender a programamar scripts shell, alguien sabe algun buen tutorial o curso que pueda descargar??? Saludos desde Saltillo, Mexico

27 de octubre de 2011, 21:52

Publicar un comentario

Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.