Actuellement, j'écris un script Bash qui a les exigences suivantes :
- il doit fonctionner sur une grande variété de plates-formes Unix/Linux
- il doit prendre en charge les options courtes et longues (GNU)
Je sais que getopts
serait le moyen préféré en termes de portabilité, mais autant que je sache, il ne prend pas en charge les options longues.
getopt
prend en charge les options longues mais le BashGuide le déconseille fortement :
N'utilisez jamais getopt(1). getopt ne peut pas gérer les chaînes d'arguments vides ou
les arguments avec des espaces blancs intégrés. S'il vous plaît, oubliez qu'il a toujours
existé.
Donc, il y a toujours l'option d'analyse manuelle. Ceci est sujet aux erreurs, produit pas mal de code passe-partout, et j'ai besoin de gérer les erreurs par moi-même (je suppose que getopt(s)
faire la gestion des erreurs par eux-mêmes).
Alors, quel serait le choix préféré dans ce cas ?
Réponse acceptée :
S'il doit être portable sur une gamme d'Unices, vous devrez vous en tenir à POSIX sh. Et AFAIU là, vous n'avez tout simplement pas d'autre choix que de rouler la gestion des arguments à la main.