Actualmente estoy escribiendo un script Bash que tiene los siguientes requisitos:
- debería ejecutarse en una amplia variedad de plataformas Unix / Linux
- debería admitir opciones cortas y largas (GNU)
Sé que getopts
sería la forma preferida en términos de portabilidad, pero AFAIK no admite opciones largas.
getopt
admite opciones largas, pero BashGuide recomienda enfáticamente que no lo haga :
Nunca use getopt (1). getopt no puede manejar cadenas de argumentos vacías o argumentos con espacios en blanco incrustados. Por favor, olvide que alguna vez existió.
Por lo tanto, todavía existe la opción de análisis manual. Esto es propenso a errores, produce bastante código repetitivo y necesito manejar los errores por mí mismo (supongo getopt(s)
que los manejo de errores por sí mismos).
Entonces, ¿cuál sería la opción preferida en este caso?