BASH – Script (LINUX) para extraer datos de un archivo JSON (XML) con comando GREP.

Para este ejemplo supondremos que tenemos el siguiente archivo en formato JSON (datos.json), y necesitamos extraer los NOMBRES. Esto es solo un ejemplo básico de como se pueden obtener los campos :

Publicado en Unix - Linux | Deja un comentario

BASH – Script agenda telefónica.

Este script básico, para manejar una agenda telefónica. Es un ejemplo que puede servir como base para realizar un SCRIPT más completo. Aquí solo guarda el nombre y número telefónico. Pero queda a la imaginación para darle un uso más profesional.

Publicado en Unix - Linux | Deja un comentario

Linux – Ver el tiempo que un proceso lleva en ejecuciónLinux.

En *nix, el comando ps permite listar y manejar procesos pero no se suele conocer la forma directa de visualizar el tiempo que lleva un proceso en ejecución. En realidad se puede sacar con la salida por defecto  a partir del valor de la columna STIME, que indica el momento en el que se inició (START TIME) pero hay que «calcular» el tiempo.

Para calcular el tiempo en ejecución de un proceso podemos utilizar el parámetro etime (elapsed time), el cual muestra en formato de fecha el tiempo que el proceso que le indiquemos lleva ejecutándose:

Lo combinaremos con otro parámetro (-p pidlist) en el que le diremos el PID a revisar y el formato (-o):

También podemos especificar el «output» que queramos para ps especificando los argumentos separados por comas después del «-o», un ejemplo:

Sabiendo esto podéis jugar creando alias de ps con la salida que necesitéis u crear las combinaciones que estiméis oportunas.

Publicado en Unix - Linux | Deja un comentario

BASH – Bucles for utilizando matrices asociativas.

En Bash 4 y versiones posteriores, las matrices asociativas le permiten crear listas de pares clave-valor que se pueden buscar por clave o por valor. Debido a la relación bidireccional entre la clave y el valor, también se denominan diccionarios de datos.

Podemos iterar a través de una matriz asociativa usando un  for círculo. Este script es «asociative.sh». Define una matriz asociativa con cuatro entradas, una para cada uno de «perro», «gato», «robin» y «humano». Estas son las claves. Los valores son el número (predeterminado) de patas que tiene cada uno.

El iterador se llama legs . Tenga en cuenta que el encabezado del ciclo contiene un «!«Punto de exclamación. Esto no actúa como el operador lógico NOT, es parte de la sintaxis de matriz asociativa. Se requiere para buscar a través de la matriz.

El cuerpo del bucle realiza una prueba de comparación de cadenas. Si el valor del miembro de la matriz es «de dos patas», imprime el valor de la clave en la ventana del terminal. Cuando lo ejecutamos, el script imprime las criaturas de dos patas.

Este codigo ${animals[@]} se expande a los valores y ${!animal[@]} se expande a dog cat robin human.

Publicado en Unix - Linux | Deja un comentario

BASH – Expansión de parámetro o de variable.

Permite la sustitución del contenido de la variable siguiendo una amplia
variedad de reglas. Los distintos formatos para la expansión de paráme-
tros son :

BASH proporciona unas potentes herramientas para el tratamiento de
cadenas, sin embargo la sintaxis puede resultar engorrosa y requiere de
experiencia para depurar el código. Por lo tanto, se recomienda crear
guiones que resulten fáciles de comprender, documentando claramente
las órdenes más complejas. Aqui algunos ejemplos de utilidad :

Publicado en Unix - Linux | Deja un comentario