Bash Scripting: Creación de Scripts en Bash y utilización de Variables y Globs

En esta breve guía sobre Bash Scripting aprenderás a iniciarte en la creación de Scripts Bash, cómo utilizar variables y cómo debe usarse una de sus características más importantes llamada globs.

Creación de Scripts en Bash

Antes de comenzar debemos saber que Bash es el Shell más utilizado en Linux y no sólo es un intérprete donde poder ejecutar comandos, sino que también es un Lenguaje de Scripting.

Podemos utilizar Bash para escribir scripts sencillos donde poder ejecutar comandos como ps, free, uptime, etc … por lo que si necesitamos ejecutar varios de estos comandos al mismo tiempo,  evitando hacerlo de uno en uno, podemos crear un script en Bash.

Creamos un fichero, que debe tener extensión .sh y le asignamos permisos de ejecución.

Editamos el fichero, incluimos el shebang con la ruta del intérprete de comandos y añadimos las siguientes líneas de ejemplo:

Lo siguiente será ejecutar el script y para ello podemos utilizar cualquiera de las siguientes opciones:

Si comprobamos la salida por pantalla, vemos que obtenemos la fecha en la que ha sido iniciado el Sistema Operativo y el tiempo que ha estado disponible desde el último reinicio:

Ahora que ya sabemos cómo crear un sencillo script, podemos pasar al siguiente paso que será aprender a utilizar variables y hacer uso de globs.

Uso de Variables y Globs

Al ser un lenguaje de Scripting, Bash nos permite crear variables y asignar valores a ellas, crear operaciones, hacer uso de condicionales, bucles, funciones, etc …

Para poder establecer un valor a una variable utilizamos el operador = (igual) y para poder acceder a su valor tenemos que usar como prefijo el símbolo $ (dolar). Es muy importante no dejar espacios en blanco, porque nos devolverá un error.

Todas las variables que definamos son establecidas localmente en el entorno que estemos utilizando en ese momento. Por lo que si necesitamos usarlas en otro entorno necesitamos usar la palabra clave export.

El lenguaje de Scripting Bash no soporta el uso de expresiones regulares, pero podemos hacer uso de una de sus características más importantes denominada globs, que permiten buscar equivalencias de grupos de caracteres, lo que nos permite encontrar coincidencias en el sistema de ficheros o en su propio contenido.

El * (asterisco) y la ? (interrogación) son los comodines más comunes. Con ellos podemos crear secuencias de ficheros y también podemos utilizarlos como parámetros en los comandos que ejecutamos.

En el ejemplo anterior estamos listando todos aquellos ficheros con extensión .sh. En cambio si hacemos uso de la ? (interrogación) este tan sólo equivaldrá a un sólo carácter.

Los [] (corchetes) nos permiten crear patrones.

  • [:upper] ó [A-Z], todas las mayúsculas del alfabeto.
  • [:lower] ó [a-z], todas las minúsculas del alfabeto.
  • [:digit] ó [0-9], cualquier dígito.
  • [:alpha] ó [a-zA-Z], todas las mayúsculas y minúsculas.
  • [:alnum] ó [a-zA-Z0-9], mayúsculas, minúsculas y dígitos.

Por lo que si queremos listar aquellos ficheros que contengan el carácter b, c o d, haremos lo siguiente:

El ^ (circunflejo) nos permite buscar patrones cuyas líneas comiencen por el patrón que indiquemos. En el ejemplo estamos buscando aquellas líneas que comiencen por la letra a.

La ! (admiración) nos permite encontrar cualquier coincidencia en cada línea dentro del fichero.

El símbolo del $ (dolar) establece cual debe ser el final de una cadena.

Si hacemos uso de {} (llaves) podemos encontrar coincidencias con diferentes patrones. Cada patrón debe estar separado por comillas simples y no deben contener espacios.

Las | (tuberías) permiten indicar más de una condición en cada patrón, por lo que cada patrón debe estar separado por el símbolo |.

Recuerda que podemos utilizar esta funcionalidad en Scripts escritos en Python, haciendo uso del módulo glob.

Deja una respuesta

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