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.