Si te encuentras escribiendo la misma secuencia de comandos más de dos veces a la semana, es momento de automatizarlo. Bash (Bourne Again Shell) es el lenguaje de scripting por excelencia en sistemas tipo Unix, y dominarlo te ahorrará cientos de horas a largo plazo.

Anatomía de un Script Básico

Todo script de Bash debe comenzar con el Shebang (#!/bin/bash), el cual le indica al sistema qué intérprete utilizar para ejecutar el archivo.

#!/bin/bash
# Mi primer script de automatización

echo "Iniciando proceso de respaldo..."
tar -czvf respaldo-$(date +%F).tar.gz /var/www/html
echo "Respaldo completado con éxito."

Recuerda que para poder ejecutar este archivo, necesitas darle permisos de ejecución usando chmod +x miscript.sh y luego correrlo con ./miscript.sh.

Variables y Argumentos

Los scripts se vuelven verdaderamente poderosos cuando pueden aceptar parámetros y almacenar información en variables.

#!/bin/bash

DIRECTORIO=$1

if [ -z "$DIRECTORIO" ]; then
    echo "Error: Debes proporcionar un directorio."
    exit 1
fi

echo "Analizando el espacio en $DIRECTORIO"
du -sh $DIRECTORIO/* | sort -hr | head -n 5

Este script acepta un directorio como argumento (ej. ./top_carpetas.sh /var/log) y muestra los 5 elementos que más espacio consumen.

Bucles para Tareas Repetitivas

Si necesitas aplicar una acción a múltiples archivos, los bucles for son tus mejores amigos. Por ejemplo, para convertir múltiples imágenes PNG a JPG usando ImageMagick:

#!/bin/bash

for img in *.png; do
    echo "Convirtiendo $img a JPG..."
    convert "$img" "${img%.png}.jpg"
done

Conclusión

La automatización con Bash es un superpoder. Comienza automatizando tareas pequeñas: actualizar el sistema, respaldar tu código o limpiar archivos temporales. Poco a poco, irás construyendo un arsenal de herramientas personalizadas que harán tu flujo de trabajo invencible.