Introducción al scripting en Bash
El scripting en Bash permite automatizar tareas repetitivas en sistemas Linux. Mediante scripts es posible ejecutar comandos de forma secuencial, tomar decisiones lógicas y gestionar errores sin intervención manual.
Es una habilidad básica para cualquier administrador de sistemas y un paso imprescindible hacia la automatización profesional.
Explicación técnica clara
Bash (Bourne Again Shell) es el intérprete de comandos por defecto en la mayoría de distribuciones Linux.
Un script Bash es un archivo de texto que contiene comandos que el sistema ejecuta en orden.
Los scripts suelen utilizarse para:
- Automatizar copias de seguridad
- Gestionar usuarios
- Monitorizar servicios
- Ejecutar tareas programadas con cron
Sintaxis
Un script Bash debe comenzar con el shebang:
#!/bin/bash
Esto indica al sistema qué intérprete debe usar para ejecutar el archivo.
Para ejecutar un script es necesario darle permisos de ejecución:
chmod +x script.sh
Y lanzarlo así:
./script.sh
Ejemplos prácticos reales
Primer script Bash
Crea el archivo:
nano hola.sh
Contenido:
#!/bin/bash
echo "Hola, este es mi primer script en Bash"
Hazlo ejecutable y ejecútalo:
chmod +x hola.sh
./hola.sh
Uso de variables
#!/bin/bash
USUARIO="Fernando"
echo "Bienvenido $USUARIO"
Lectura de datos por teclado
#!/bin/bash
echo "Introduce tu nombre:"
read NOMBRE
echo "Hola $NOMBRE"
Condicionales
#!/bin/bash
if [ "$USER" = "root" ]; then
echo "Estás ejecutando el script como root"
else
echo "No eres root"
fi
Comprobación de servicios
#!/bin/bash
if systemctl is-active --quiet ssh; then
echo "El servicio SSH está activo"
else
echo "El servicio SSH está detenido"
fi
Errores comunes
- Olvidar el shebang en la primera línea.
- No dar permisos de ejecución al script.
- Usar espacios incorrectamente en condicionales.
- Ejecutar scripts como root sin necesidad.
Buenas prácticas / Seguridad
- Usar rutas absolutas en scripts críticos.
- Validar siempre las variables de entrada.
- Añadir mensajes de error claros.
- Evitar ejecutar scripts como root si no es imprescindible.
- Comentar el código para facilitar el mantenimiento.
Ejemplo de comentario:
# Este script comprueba el estado del servicio SSH
Preguntas frecuentes (FAQ)
¿Bash sirve para scripts complejos?
Sí, aunque para proyectos grandes puede ser más adecuado usar Python u otros lenguajes.
¿Dónde se suelen guardar los scripts?
Habitualmente en /usr/local/bin o en un directorio propio del usuario.
¿Puedo programar scripts Bash?
Sí, mediante cron o systemd timers.
¿Bash es igual en todas las distribuciones?
En esencia sí, aunque puede haber pequeñas diferencias según la versión.