web-dev-qa-db-fra.com

Comment indiquer qu'un argument de ligne de commande est facultatif lors de l'impression de l'utilisation

Supposons que j'ai un script qui peut être exécuté de l'une des manières suivantes.

./foo arg1 arg2
./foo

Existe-t-il un moyen généralement accepté de signaler que arg1 et arg2 ne sont pas des arguments obligatoires lors de l'impression de l'utilisation correcte de la commande?

J'ai parfois remarqué l'utilisation imprimée avec les arguments entre crochets comme dans l'impression d'utilisation suivante.

Usage: ./foo [arg1] [arg2]

Ces crochets signifient-ils que l'argument est facultatif ou existe-t-il une autre manière généralement acceptée de dénoter qu'un argument est facultatif?

31
Anthony Jack

Personnellement, je n'ai pas vu de `` standard '' qui indique qu'un commutateur est facultatif (comme la façon dont il existe une norme qui définit la façon dont certaines langues sont écrites par exemple), car c'est vraiment un choix personnel, mais selon documentation d'IBM et le Wiki , ainsi que de nombreux scripts Shell que j'ai personnellement vus (et les options de ligne de commande de divers programmes), le 'defacto' est de traiter entre crochets ([]) comme paramètres optionnels. Exemple sous Linux:

ping (sortie rognée ...)

usage: ping [-c count] [-t ttl] Host

[-c count] et [-t ttl] sont des paramètres facultatifs mais Host ne l'est pas.

Personnellement, je suis également la facta en utilisant [] pour signifier un paramètre facultatif.

25
txtechhelp

Je suppose que c'est autant une norme que n'importe quoi.

Les spécifications de base du groupe ouvert Numéro 7

IEEE Std 1003.1, édition 2013

Copyright © 2001-2013 L'IEEE et l'Open Group

Ch.12 - Conventions utilitaires

Bien qu'il ne semble pas mentionner beaucoup de choses que j'ai souvent vues au fil des ans pour désigner diverses significations:

  • crochets [optional option]
  • équerres <required argument>
  • accolades {default values}
  • parenthèse (miscellaneous info)

Edit: je dois ajouter que ce ne sont que des conventions. L'important est de choisir une convention qui soit sensée, d'énoncer clairement votre convention et de la respecter de manière cohérente. Soyez flexible et créez des conventions qui semblent être les plus fréquemment rencontrées sur vos plateformes cibles. Ils seront les plus faciles à adapter aux utilisateurs.

44
user2895783

Oui, les crochets indiquent des arguments facultatifs dans les pages de manuel Unix.

De "man man":

[-abc] tout ou partie des arguments dans [] sont facultatifs.

12
mpez0