Ceci est une ancienne révision du document !
Les arguments transmis au script bash courant sont accessibles via les variables $1 à $n. La variable $@ désigne l'ensemble des arguments.
getopts et getopt sont deux moyens similaires mais non identiques pour gérer de façon avancée les options et les arguments passés aux scripts.
La gestion des options n'est pas triviale si l'on souhaite un usage souple et conforme aux standards. C'est la raison d'être des outils getopts et getopt. Par exemple les différents appels du script ci-dessous devraient produire le même comportement:
$ ./mon_script -a -b -c $ ./mon_script -abc $ ./mon_script -b -a -c $ ./mon_script -ba -c $ ./mon_script -ba -c $ ./mon_script --long-a --long-c --long-b
Les difficultés que pointe cet exemple:
Un script d'exemple est disponible au noeud /usr/share/doc/util-linux/examples/getopt-parse.bash.