Bash Scripting: Guía Completa para Principiantes en Linux

Bash Scripting: Guía Completa para Principiantes en Linux

Este tutorial de Bash Scripting te guiará a través del mundo de la automatización de tareas en Linux, enseñándote cómo crear scripts de Bash desde cero. Aprenderás a utilizar el shell bash para escribir scripts que ejecuten tareas repetitivas, ahorrándote tiempo y esfuerzo.

¿Qué es un script de Bash?

Un script de Bash es un archivo de texto plano que contiene una serie de comandos que se ejecutan en secuencia. Estos comandos pueden ser comandos estándar de la línea de comandos como ls, cd, mkdir o comandos específicos para scripting como echo, read, if, for, etc. Cualquier comando que puedes ejecutar en la línea de comandos también puedes incluirlo en un script, y viceversa.

Cómo funcionan los scripts de Bash

Los scripts de Bash funcionan a través del concepto de programas y procesos. Un programa es un conjunto de instrucciones almacenadas en el disco duro. Un proceso es una instancia en ejecución de un programa en memoria. Al ejecutar un script de Bash, el sistema operativo lee las instrucciones del script y las ejecuta una por una en memoria como un proceso.

Ejecutando un script de Bash

Para ejecutar un script de Bash, necesitas otorgarle permisos de ejecución y luego ejecutarlo desde la línea de comandos.

  1. Otorgar permisos de ejecución:
    bash
    chmod +x nombre_del_script.sh

  2. Ejecutar el script:
    bash
    ./nombre_del_script.sh

El Shebang (#!)

La primera línea de un script de Bash generalmente comienza con #! seguida de la ruta al intérprete que se debe usar para ejecutar el script. Esta línea se conoce como «shebang» y es crucial para que el script se ejecute correctamente. Por ejemplo:
«`bash

!/bin/bash

«`

El shebang le indica al sistema operativo que use el interprete bash (/bin/bash) para ejecutar el script. Si la primera línea no contiene un shebang, el sistema operativo intentará ejecutarlo usando el interprete predeterminado, que podría no ser el bash.

LEER:  Algoritmo Find-S: Una guía completa para el aprendizaje automático

Formato en los scripts de Bash

La legibilidad de un script de Bash es crucial para facilitar su mantenimiento y depuración. Un formato adecuado, incluyendo el uso de espacios y la indentación del código, contribuye en gran medida a la legibilidad del script y puede prevenir errores.

Espacios en los comandos

En general, los comandos en un script de Bash se separan por espacios. Por ejemplo:
bash
echo "Hola mundo"

Indentación del código

La indentación del código mejora la legibilidad del script, especialmente cuando se trata de estructuras de control como if, for, while, etc. La indentación no es obligatoria, pero es una práctica recomendada.

Ejemplo básico de un script de Bash

«`bash

!/bin/bash

Este script muestra un mensaje en la consola

echo «Hola mundo desde un script de Bash»
«`

Este script simple muestra el mensaje «Hola mundo desde un script de Bash» en la consola. Para ejecutarlo, necesitas:

  1. Guardar el script en un archivo llamado hola_mundo.sh.
  2. Otorgar permisos de ejecución al archivo: chmod +x hola_mundo.sh
  3. Ejecutar el script: ./hola_mundo.sh

Variables en los scripts de Bash

Las variables en los scripts de Bash se utilizan para almacenar información que se puede reutilizar en el script. Una variable se define utilizando el símbolo =. Por ejemplo:
bash
nombre="Juan"

Para acceder al valor de una variable, debes anteponer el nombre de la variable con el símbolo $. Por ejemplo:
bash
echo "Hola $nombre"

Comentarios en los scripts de Bash

Los comentarios en los scripts de Bash se utilizan para explicar el código y facilitar su comprensión. Un comentario se inicia con el símbolo #. Cualquier texto después del símbolo # hasta el final de la línea se ignorará.

Por ejemplo:
«`bash

LEER:  Abrir archivos XML en Excel: Guía paso a paso para principiantes

Este script muestra un mensaje en la consola

echo «Hola mundo»
«`

Estructuras de control en los scripts de Bash

Las estructuras de control permiten que los scripts de Bash ejecuten diferentes conjuntos de instrucciones en función de ciertas condiciones.

Condicionales (if, else, elif)

La estructura condicional if permite ejecutar un bloque de código si una condición es verdadera.

bash
if [ $variable -eq 10 ]; then
echo "La variable es igual a 10"
fi

La estructura condicional else se utiliza para ejecutar un bloque de código si la condición del if es falsa.

bash
if [ $variable -eq 10 ]; then
echo "La variable es igual a 10"
else
echo "La variable no es igual a 10"
fi

La estructura condicional elif se utiliza para comprobar condiciones adicionales si la condición del if es falsa.

bash
if [ $variable -eq 10 ]; then
echo "La variable es igual a 10"
elif [ $variable -eq 20 ]; then
echo "La variable es igual a 20"
else
echo "La variable no es igual a 10 ni a 20"
fi

Bucles (for, while, until)

Los bucles permiten ejecutar un bloque de código repetidamente hasta que se cumpla una condición.

for

El bucle for itera sobre una lista de valores.

bash
for i in 1 2 3 4 5; do
echo "Número: $i"
done

while

El bucle while ejecuta un bloque de código mientras una condición es verdadera.

bash
i=1
while [ $i -le 5 ]; do
echo "Número: $i"
i=$((i+1))
done

until

El bucle until ejecuta un bloque de código hasta que una condición es verdadera.

bash
i=1
until [ $i -gt 5 ]; do
echo "Número: $i"
i=$((i+1))
done

Funciones en los scripts de Bash

Las funciones en los scripts de Bash son bloques de código reutilizables que realizan una tarea específica.

«`bash

Función para mostrar un mensaje en la consola

saludo() {
echo «Hola mundo desde una función»
}

LEER:  AWK: Ejemplos Básicos para Manipular Archivos de Texto

Llamar a la función

saludo
«`

Interacción con el usuario

Los scripts de Bash pueden interactuar con el usuario utilizando los comandos read y dialog.

read

El comando read permite leer datos ingresados por el usuario desde la línea de comandos.

«`bash
echo «Ingrese su nombre: »
read nombre

echo «Hola $nombre»
«`

dialog

El comando dialog permite crear interfaces de usuario más complejas, como cajas de diálogo, menús, etc.

«`bash

Instalar el paquete dialog

sudo apt-get install dialog

Crear un menú

dialog –menu «Seleccione una opción» 10 40 1
1 «Opción 1»
2 «Opción 2»
3 «Opción 3» 2>&1 >/dev/tty

Obtener el resultado del menú

opcion=$?

Ejecutar el código correspondiente a la opción seleccionada

if [ $opcion -eq 1 ]; then
# Código para la opción 1
elif [ $opcion -eq 2 ]; then
# Código para la opción 2
elif [ $opcion -eq 3 ]; then
# Código para la opción 3
fi
«`

Ejemplos de scripts de Bash

Script para mostrar archivos en un directorio

«`bash

!/bin/bash

Mostrar los archivos en el directorio actual

ls -l

Mostrar los archivos con extensión .txt

ls -l *.txt
«`

Script para crear un directorio y un archivo

«`bash

!/bin/bash

Crear un directorio llamado «nuevo_directorio»

mkdir nuevo_directorio

Crear un archivo llamado «nuevo_archivo.txt» dentro del directorio

touch nuevodirectorio/nuevoarchivo.txt
«`

Script para copiar archivos

«`bash

!/bin/bash

Copiar el archivo «archivofuente.txt» al archivo «archivodestino.txt»

cp archivofuente.txt archivodestino.txt
«`

Conclusión

Este tutorial ha cubierto los conceptos básicos de Bash Scripting, incluyendo la definición de scripts de Bash, cómo ejecutarlos, el uso de variables, comentarios, estructuras de control, funciones e interacción con el usuario. Aprender Bash Scripting te permitirá automatizar tareas repetitivas, gestionar archivos y directorios, y crear herramientas personalizadas para tu sistema Linux. Sigue practicando y explorando nuevas posibilidades con Bash Scripting.