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.

Post Anterior