Ejemplos condicionales
¡Hecho! 😊 Aquí tienes varios ejemplos de uso real en Bash, muy sencillos, típicos del día a día, sin nada raro ni avanzado. Son ideales para entender para qué sirven de verdad los scripts.
Saludar según la hora del día
Uso real: mostrar un mensaje distinto según la hora.
#!/bin/bash
hora=$(date +%H)
if [ "$hora" -lt 12 ]; then
echo "Buenos días"
elif [ "$hora" -lt 20 ]; then
echo "Buenas tardes"
else
echo "Buenas noches"
fi
Comprobar si un archivo existe antes de usarlo
Uso real: evitar errores si falta un archivo.
#!/bin/bash
archivo="config.txt"
if [ -f "$archivo" ]; then
echo "Archivo encontrado"
else
echo "Error: el archivo no existe"
fi
Copia de seguridad sencilla
Uso real: hacer una copia solo si existe la carpeta origen.
#!/bin/bash
origen="documentos"
destino="backup"
if [ -d "$origen" ]; then
cp -r "$origen" "$destino"
echo "Copia realizada"
else
echo "La carpeta origen no existe"
fi
Validar una contraseña simple
Uso real: comprobar si el usuario introduce la contraseña correcta.
#!/bin/bash
read -s -p "Introduce la contraseña: " pass
echo
if [ "$pass" = "1234" ]; then
echo "Acceso permitido"
else
echo "Acceso denegado"
fi
Mostrar información del sistema
Uso real: script rápido de información básica.
#!/bin/bash
echo "Usuario: $USER"
echo "Directorio actual: $PWD"
echo "Sistema: $(uname -s)"
Avisar si se ejecuta como root
Uso real: prevenir errores graves.
#!/bin/bash
if [ "$EUID" -eq 0 ]; then
echo "⚠ No ejecutes este script como root"
else
echo "Usuario normal"
fi
Menú básico para elegir una acción
Uso real: scripts interactivos.
#!/bin/bash
echo "1) Ver fecha"
echo "2) Ver calendario"
read -p "Elige opción: " opcion
if [ "$opcion" -eq 1 ]; then
date
elif [ "$opcion" -eq 2 ]; then
cal
else
echo "Opción incorrecta"
fi
Contar argumentos pasados al script
Uso real: validar cómo se ejecuta un script.
#!/bin/bash
if [ "$#" -lt 2 ]; then
echo "Debes pasar al menos dos argumentos"
else
echo "Argumentos correctos"
fi
Avisar si un proceso está en ejecución
Uso real: comprobar si un programa está abierto.
#!/bin/bash
proceso="firefox"
if pgrep "$proceso" > /dev/null; then
echo "$proceso está en ejecución"
else
echo "$proceso NO está en ejecución"
fi
Limpiar una carpeta temporal
Uso real: borrar archivos temporales solo si la carpeta existe.
#!/bin/bash
temp="/tmp/pruebas"
if [ -d "$temp" ]; then
rm -rf "$temp"/*
echo "Carpeta temporal limpiada"
else
echo "La carpeta no existe"
fi
Comprobar conexión a Internet
Uso real: saber si hay conexión antes de continuar.
#!/bin/bash
if ping -c 1 google.com > /dev/null; then
echo "Hay conexión a Internet"
else
echo "No hay conexión"
fi
Crear un archivo si no existe
Uso real: inicializar un fichero de log.
#!/bin/bash
archivo="app.log"
if [ ! -f "$archivo" ]; then
touch "$archivo"
echo "Archivo creado"
else
echo "El archivo ya existe"
fi
Mostrar ayuda si no se pasa un parámetro
Uso real: scripts con ayuda básica.
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Uso: $0 nombre_archivo"
exit 1
fi
echo "Archivo recibido: $1"
Avisar si un usuario existe en el sistema
Uso real: administración básica de usuarios.
#!/bin/bash
read -p "Introduce un usuario: " usuario
if id "$usuario" &>/dev/null; then
echo "El usuario existe"
else
echo "El usuario no existe"
fi
Cambiar permisos solo si el archivo existe
Uso real: evitar errores de permisos.
#!/bin/bash
archivo="script.sh"
if [ -f "$archivo" ]; then
chmod +x "$archivo"
echo "Permisos de ejecución asignados"
else
echo "El archivo no existe"
fi
Contar archivos en un directorio
Uso real: saber si una carpeta está vacía.
#!/bin/bash
dir="documentos"
cantidad=$(ls "$dir" 2>/dev/null | wc -l)
if [ "$cantidad" -eq 0 ]; then
echo "La carpeta está vacía"
else
echo "La carpeta tiene archivos"
fi
Confirmar una acción peligrosa
Uso real: evitar borrados accidentales.
#!/bin/bash
read -p "¿Seguro que quieres borrar todo? (si/no): " resp
if [ "$resp" = "si" ]; then
echo "Borrando..."
else
echo "Acción cancelada"
fi
Comprobar si un puerto está en uso
Uso real: administración de servicios.
#!/bin/bash
puerto=80
if ss -ltn | grep ":$puerto " > /dev/null; then
echo "El puerto $puerto está en uso"
else
echo "El puerto $puerto está libre"
fi