Comando Source: evitando la creación de subprocesos en Bash.-

Cuando se ejecuta desde una shell un comando o un script, se crea un subproceso (proceso hijo) de la shell que ejecuta el comando o el script (proceso padre).
Si el script que ejecuta el proceso hijo crea o modifica alguna variable de entorno, esos cambios o variables desaparecen cuando finaliza el comando o script.

Si deseamos que dichos cambios permanezcan, podemos utilizar el comando de Bash source. Este comando hace que el proceso o comando se ejecute sin crear ningún proceso hijo, de forma que los cambios efectuados en las variables de entorno y demás, se mantengan al finalizar el archivo.

Veamos el uso del comando source de Bash con un ejemplo.
Tenemos creado el script ejemplo_source.sh, que contiene el siguiente código:

Al Ejecutarlo obtenemos :

Después de la ejecución del SCRIPT tratamos de ver el valor que tiene la variable, veremos que esta vacía. Pero si el SCRIPT lo ejecutamos con el comando SOURCE, el valor lo mantendrá, ya que no crea procesos HIJOS, sino que lo ejecuta en el mismo entorno.-

Publicado en Unix - Linux | Deja un comentario

BASH – Dirección HERE DOCUMENT, perfecta para generar código adicional.-

En ocasiones pasa desapercibida ya que no se suele mencionar demasiado en las guías de scripting o se hace una pasada muy superficial sobre las posibilidades que ofrece. Especialmente en los casos en los que hay que “volcar” código adicional desde scripts en bash hacia otros scripts o ficheros. Afortunadamente, gracias a las redirecciones  Here Document/Here-script esta tarea se hace bastante más llevadera. Muy útil en la generación de SCRIPTS y presentar los resultados via WEB.

Vamos a ver un ejemplo muy sencillo de script en bash en el que generamos un HTML a base de “echo” y haciendo redirecciones al fichero html_example.html:

Al ejecutar el script obtendríamos:

Publicado en Unix - Linux | Deja un comentario

SCRIPTS – Construcción de comandos en tiempo de ejecución: eval (Referencia Indirecta).-

El comando eval construye un comando mediante la concatenación de sus argumentos (pueden ser variables, etc.) separados por espacios.

Dicho comando construido es leído por el shell e interpretado. La sintaxis del comando es:

eval[argumentos …]

Un posible uso es la creación de referencias indirectas a variables (parecido a usar punteros en lenguaje de programación C).

Publicado en Unix - Linux | Deja un comentario

BASH – Verificar ingreso de un número valido.-

A continuación se valida mediante una función que el parámetro ingresado corresponde a un numero valido.

Publicado en Unix - Linux | Deja un comentario

BASH – Leer linea a linea con comando READ.-

También podemos a partir de un archivo estructurado (como una libretas de direcciones o /etc/passwd por ejemplo) obtener los valores de cada campo y asignarlos a varias variables con el comando “read”. Sin embargo hay que tener cuidado de asignar a la variable “IFS” el separador de campo adecuado (espacio por defecto).

Publicado en Unix - Linux | Deja un comentario