EDIT: Il a été souligné que ce style est un GNU-isme, et que les Unix non basés sur GNU ont tendance à utiliser une syntaxe à tiret unique (en particulier, les variantes OS X et BSD).
Malgré son statut GNU-ism, de nombreux programmes de style Unix nouvellement écrits utilisent ce style:
--long-option pour les noms d'options longs,
-s pour les options courtes (un caractère),
-abc pour plusieurs options courtes sans arguments (un caractère par option).
- Options avec arguments:
--long argou --long=argpour les options longues,
-s arg, -sargou (en option) -s=argpour les options courtes. Cela peut être combiné avec d'autres options courtes, tant que seule la dernière a un argument.
- La même option "sémantique" peut avoir plusieurs alias, le plus souvent un court (plus rapide à taper) et un long (plus facile à retenir).
Quiconque a utilisé un shell Linux pendant un certain temps doit être familier avec ce style 1 , il a donc le principe de la moindre surprise de son côté. Permettre le regroupement de plusieurs options courtes sans être ambigu avec des options longues est également agréable.
1 Par exemple, certains des programmes utilisant ce style (sur ma machine Linux): ls, grep, man, sed, bash, etc. ( EDIT: ce sont apparemment GNU-ismes cependant, les machines BSD et Mac OS X n'utilisent pas ce style)
Il y a plusieurs bibliothèques qui peuvent se charger d'analyser ceci pour vous (la plus connue étant l'implémentation GNU de getopt ), vous n'avez besoin que de spécifier quelles options longues et courtes existent, si elles prennent un argument, et que faire quand un est trouvée. (Et bien sûr, que faire pour les arguments positionnels, c'est-à-dire ceux qui ne commencent pas par -et qui ne sont pas des arguments des options précédentes)
findest un très ancien programme (ou peut-être plus probable: une version réécrite d'un très ancien programme) qui ne peut pas être facilement modifié pour utiliser une nouvelle syntaxe de ligne de commande. Trop de scripts se briseraient et trop d'utilisateurs habitués à l'ancienne syntaxe se plaindraient. javaca probablement été influencé par gccet amis, qui suivent également une ancienne syntaxe pour des raisons historiques.