BASH – Script para obtener el directorio de ejecución del script BASH.-

Esto es muy útil, pues cuando haces un programa y lo ejecutas a mano controlas estos “parámetros” como son quien lo ejecuta y desde donde, pero cuando ese mismo script lo automatizas por ejemplo en un cron estas variables (quien lo ejecuta y desde donde suele cambiar) y por lo tanto es muy probable que el resultado esperado de tu programa no sea el que tú deseabas sino otro por ese motivo. Se ejecuta de manera diferente a lo que tú esperas.

Publicado en Unix - Linux | 1 comentario

BASH – Script Lectura con timeout.-

Para quedar a la espera de que el usuario introduzca el dato que se le solicita durante un tiempo limitado, el comando read dispone del modificador “-t”, que permite especificar el número máximo de segundos antes de que el script continue su ejecución. Si se alcanza el tiempo límite, el valor de las variables a leer queda en blanco, y el comando read devuelve un código de status distinto de cero:

Publicado en Unix - Linux | Deja un comentario

BASH – Eliminar espacios en blanco sobrantes de una variable. (Espacios adelante y atras)

Eliminar los espacios por delante y por detrás, pero no por dentro, directamente dentro del script Bash, el código resultante es un poco confuso:

Al ejecutar este script el resultado que nos mostrara sera el siguiente :

Publicado en Unix - Linux | Deja un comentario

BASH – Cómo comprobar si un array de bash contiene un elemento.-

Lamentablemente no existe ninguna manera sencilla de hacerlo, pero sí que puedes utilizar la siguiente función:

Y así es como podrías utilizarlo:

Publicado en Unix - Linux | Deja un comentario

BASH – Manejo de cadenas de texto.

A veces se encuentran ciertas limitaciones a la hora de escribir scripts de shell en el manejo de cadenas y es que, muchas veces, nos olvidamos de que bash tiene un montón de operaciones sobre strings. Por ejemplo:

Otra cuestión donde no es difícil cometer errores es en las comparaciones; al no ser bash un lenguaje tipado, ciertas construcciones pueden dar lugar a errores que pasan desapercibidos y llegan a ser difíciles de detectar. Así que recordemos:

El operador de comparación es =, no -eq.
== es sinónimo de =
El operador “distinto de” es !=
Ejemplos:

Pero, con dobles corchetes, el funcionamiento es distinto (pattern matching):

Si las expresiones son compuestas, se pueden usar los operadores -a (y lógico) y -o (o lógico). Y, sólo en el caso de usar dobles corchetes, sus “casi” equivalentes && y || o

Publicado en Unix - Linux | 4 comentarios