1 🚀 Laboratorio de Desafío: Scripting de Shell Bash

1.1 🎯 Objetivo

Escribir un script Bash que genere archivos secuenciales en bloques de 25, asegurando continuidad desde la última ejecución.


1.2 🧠 Conceptos clave que deberías conocer

  • Uso de touch para crear archivos vacíos
  • Variables en Bash ($VARIABLE)
  • Expresiones aritméticas: $((...))
  • Comando ls y grep para manipular salidas
  • Redirección y ejecución condicional
  • Uso de basename, sort, tail, y cut para análisis de nombres

1.3 📝 Tarea: Escribir el script

Crea un archivo generate_files.sh:

touch generate_files.sh
chmod +x generate_files.sh

Edita con tu editor favorito, por ejemplo:

nano generate_files.sh

Agrega lo siguiente:

#!/bin/bash

PREFIX="tuNombre"  # Reemplaza 'tuNombre' por tu nombre real
FILES=($(ls ${PREFIX}[0-9]* 2>/dev/null))
if [ ${#FILES[@]} -eq 0 ]; then
  START=1
else
  LAST=$(ls ${PREFIX}[0-9]* 2>/dev/null | grep -o '[0-9]\+$' | sort -n | tail -1)
  START=$((LAST + 1))
fi

END=$((START + 24))

for i in $(seq $START $END); do
  touch "${PREFIX}${i}"
done

echo "📁 Archivos creados de ${PREFIX}${START} a ${PREFIX}${END}"

Guarda y sal (Ctrl+O, Enter, Ctrl+X en nano).


1.4 ▶️ Ejecución del script

./generate_files.sh

Ejemplo de salida:

📁 Archivos creados de tuNombre1 a tuNombre25

Si lo ejecutas otra vez:

📁 Archivos creados de tuNombre26 a tuNombre50

1.5 🔍 Verificación

ls -lh | grep tuNombre

Debe mostrar los archivos secuenciales generados.


1.6 💡 Tips adicionales

  • Puedes poner este script en un cron job para programarlo
  • Agrega validaciones para carpetas específicas
  • Usa basename o awk para parseo si trabajas con nombres complejos

1.7 📚 Recursos