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.
-
Otorgar permisos de ejecución:
bash
chmod +x nombre_del_script.sh
-
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.
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:
- Guardar el script en un archivo llamado
hola_mundo.sh. - Otorgar permisos de ejecución al archivo:
chmod +x hola_mundo.sh - 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
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»
}
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.