Hace un tiempo encontré el repositorio yaacov/argparse-sh, del autor del artículo argparse.sh: Simple Yet Powerful Bash argument parsing.
Como indica en el post, argparse-sh
es una forma sencilla y potente de gestionar parámetros en Bash.
La idea en la que se basa, creando un array asociativo (un dictionary
en Python), me recordó a Cobra, en Go.
Pese a ser una library pequeña, permite definir parámetros obligatorios y opcionales, un mensaje de ayuda para cada parámetro, diferentes tipos de parámetros…
La “única pega” es que, debido a que usa arrays asociativos, require Bash 4 o superior.
Así que me puse manos a la obra para hacer un backport y hacerlo compatible con Bash 3 (la que hay por defecto en los Mac).