Sinon, existe-t-il une norme de facto? Fondamentalement, j'écris un texte d'aide en ligne de commande comme ceci:
usage: app_name [options] required_input required_input2
options:
-a, --argument Does something
-b required Does something with "required"
-c, --command required Something else
-d [optlistitem1 optlistitem 2 ... ] Something with list
Je l'ai fait en lisant simplement le texte d'aide de divers outils, mais y a-t-il une liste de directives ou quelque chose? Par exemple, dois-je utiliser des crochets ou des parenthèses? Comment utiliser l'espacement? Et si l'argument est une liste? Merci!
--help
devrait ressembler la sortie de . Mais les deux questions sont un bon candidat pour une fusion.Réponses:
En règle générale, la sortie de votre aide doit inclure:
[options]
pour indiquer où vont les optionsarg_name
pour un argument singulier requis[arg_name]
pour un argument singulier facultatifarg_name...
pour un argument requis dont il peut y en avoir plusieurs (c'est rare)[arg_name...]
pour un argument pour lequel un nombre peut être fourniarg_name
devrait être un nom court descriptif, en bas, cas de serpent-l
) ou une forme longue (par exemple--list
), incluez-les ensemble sur la même ligne, car leurs descriptions seront les mêmesGREP_OPTS
Notez en outre qu'il est bon d'accepter les deux
-h
et--help
de déclencher ce message et que vous devez afficher ce message si l'utilisateur gâche la syntaxe de la ligne de commande, par exemple omet un argument requis.la source
usage: move (+|-)pixels
savoir lorsque l' un+
ou-
est obligatoire ? (Je sais que je peux avoir 2 lignes d'utilisation mais j'aime l'idée de les doubler avec chaque nouvel argument.) Pouvez-vous penser à un exemple à partir d'un outil standard?{a|b|c|...}
dans les sections d'aide pour SysV scripts de service INIT / arriviste, qui nécessitent un argument singulier qui est l' una
,b
,c
, etc. Par exemple,service sddm
sans argument sur mon système imprime surUsage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}
. Donc, la plupart des gens comprendraient probablementusage: move {+|-}pixels}
, surtout si un exemple est donné:example: move +5
Jetez un oeil à docopt . Il s'agit d'une norme formelle de documentation (et d'analyse automatique) des arguments de ligne de commande.
Par exemple...
la source
Je pense qu'il n'y a pas de syntaxe standard pour l'utilisation de la ligne de commande, mais la plupart utilisent cette convention:
Syntaxe de ligne de commande Microsoft , IBM a une syntaxe de ligne de commande similaire
Text without brackets or braces
Éléments que vous devez saisir comme indiqué
<Text inside angle brackets>
Espace réservé pour lequel vous devez fournir une valeur
[Text inside square brackets]
Éléments facultatifs
{Text inside braces}
Ensemble d'éléments requis; choisissez-en un
Barre verticale
{a|b}
Séparateur pour les articles mutuellement exclusifs; choisissez-en un
Ellipse
<file> …
Éléments pouvant être répétés
la source
Nous utilisons Linux, un système d'exploitation principalement compatible POSIX. Normes POSIX il devrait être: Syntaxe de l'argument utilitaire .
-o
.-o argument
ou-oargument
.-lst
est équivalent à-t -l -s
.-lst
est donc équivalent à-tls
.-lst
option : la non- option.--
argument met fin aux options.-
option est généralement utilisée pour représenter l'un des flux d'entrée standard.la source
man aptitude
qui sort ce (entre autres):aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...
. Il contient {et} pour lier d'autres commandes obligatoires. Je pense (et) pourrait être utilisé pour la même chose comme ils sont utilisés dans docopt .Microsoft a sa propre spécification Standard Command Line :
la source
-?
,-Help
,-Version
, etc.). La réponse de l'OMI Steely Wing est plus proche de la réalité.La norme de codage GNU est une bonne référence pour des choses comme celle-ci. Cette section traite de la sortie de
--help
. Dans ce cas, ce n'est pas très spécifique. Vous ne pouvez probablement pas vous tromper en imprimant un tableau montrant les options courtes et longues et une description succincte. Essayez d'obtenir l'espacement entre tous les arguments pour une meilleure lisibilité. Vous souhaiterez probablement fournir uneman
page (et éventuellement uninfo
manuel) pour votre outil afin de fournir une explication plus élaborée.la source
oui, vous êtes sur la bonne voie.
oui, les crochets sont l'indicateur habituel pour les éléments optionnels.
En règle générale, comme vous l'avez esquissé, il y a un résumé en ligne de commande en haut, suivi de détails, idéalement avec des échantillons pour chaque option. (Votre exemple montre des lignes entre chaque description d'option, mais je suppose qu'il s'agit d'un problème d'édition et que votre programme réel génère des listes d'options en retrait sans lignes vides entre les deux. Ce serait la norme à suivre dans tous les cas.)
Une tendance plus récente, (peut-être existe-t-il une spécification POSIX qui résout ce problème?), Est l'élimination du système de page de manuel pour la documentation et l'inclusion de toutes les informations qui figureraient dans une page de manuel dans le cadre de la
program --help
sortie. Cet extra comprendra des descriptions plus longues, des concepts expliqués, des exemples d'utilisation, des limitations et des bogues connus, comment signaler un bogue, et éventuellement une section `` voir aussi '' pour les commandes associées.J'espère que ça aide.
la source
-h|--help
doit être juste une référence résumée. Vous pouvez également inclure une documentation plus complète (tutoriels, etc ...) dans des pages HTML ou info. Mais la page de manuel devrait être là!someCommand --help
sur ma coque, tout ce dont j'ai besoin est un petit rappel de l'ordre précis dans lequel les arguments entrent, pas une bande géante de texte qui remplit l'écran, ce qui nécessite que je le canaliseless
juste pour tout voir. La page de manuel doit être l'endroit où vous mettez la longue description détaillée, pas le texte d'aide.Je suivrais des projets officiels comme tar comme exemple. À mon avis, aider msg. doit être aussi simple et descriptif que possible. Les exemples d'utilisation sont également bons. Il n'y a pas vraiment besoin d'une "aide standard".
la source
tar
... si quelqu'un va faire un utilitaire divin comme tar, veuillez rendre les commutateurs courts mémorables et inclure une section "exemple d'utilisation" dans le--help
. 90% du temps je regarde les instructions de tar pour extraire un simpletar.gz
.