bashumerate es una utilidad de línea de comandos escrita en unas 140 líneas de Bash que unifica la forma de iterar sobre distintos tipos de elementos en la shell. Su pieza central es el comando enumerate, que acepta cuatro fuentes de datos mediante banderas específicas: -f para archivos con glob, -l para líneas de un fichero (o stdin si se indica -), -r para rangos numéricos y -L para listas de elementos. Tras la bandera -- se escribe el comando a ejecutar sobre cada elemento, usando {} como marcador de posición.
Su valor práctico está en simplificar tareas habituales: contar líneas de un grupo de archivos, reiniciar contenedores Docker, procesar una lista de URL o limpiar ficheros de log, todo con una sintaxis coherente. Ofrece modo plantilla, donde el comando se interpreta como una plantilla de shell entre comillas simples; filtros --include y --exclude con patrones glob; salida delimitada por NUL mediante -0 para manejar espacios y caracteres especiales, y un mecanismo de extensión por convención: cualquier función llamada enumerate_source_ en lib/enumerators se incorpora automáticamente como fuente nueva, sin registro ni configuración.
Internamente, las fuentes producen elementos delimitados por NUL y el marcador {} se sustituye a nivel de shell, sin sed ni eval. Si se omite el comando, enumerate imprime los elementos por stdout, lo que permite encadenarlo con xargs o bucles. Se instala con basher o clonando el repositorio y creando un enlace simbólico a ~/.local/bin/.
