Wenn nicht, gibt es einen De-facto-Standard? Grundsätzlich schreibe ich einen Befehlszeilen-Hilfetext wie folgt:
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
Ich habe das gemacht, indem ich im Grunde nur den Hilfetext verschiedener Tools gelesen habe, aber gibt es eine Liste von Richtlinien oder so? Verwenden Sie beispielsweise eckige Klammern oder Klammern? Wie verwende ich den Abstand? Was ist, wenn das Argument eine Liste ist? Vielen Dank!
--help
aussehen soll. Beide Fragen sind jedoch ein guter Kandidat für eine Fusion.Antworten:
In der Regel sollte Ihre Hilfeausgabe Folgendes enthalten:
[options]
um anzugeben, wohin die Optionen führenarg_name
für ein erforderliches, singuläres arg[arg_name]
für ein optionales, singuläres Argumentarg_name...
für ein erforderliches Argument, von dem es viele geben kann (dies ist selten)[arg_name...]
für ein Argument, für das eine beliebige Nummer angegeben werden kannarg_name
dies ein beschreibender Kurzname in Kleinbuchstaben sein sollte-l
) oder eine Langform (z. B. ) akzeptieren kann,--list
diese in derselben Zeile zusammengefasst werden, da ihre Beschreibungen identisch sindGREP_OPTS
Beachten Sie außerdem, dass es eine gute Form ist, beide zu akzeptieren
-h
und--help
diese Nachricht auszulösen, und dass Sie diese Nachricht anzeigen sollten, wenn der Benutzer die Befehlszeilensyntax durcheinander bringt, z. B. ein erforderliches Argument weglässt.quelle
usage: move (+|-)pixels
dh wann eine von+
oder-
ist obligatorisch ? (Ich weiß, dass ich zwei Verwendungszeilen haben kann, aber ich mag die Idee, sie mit jedem neuen Argument zu verdoppeln.) Können Sie sich ein Beispiel aus einem Standardwerkzeug vorstellen?{a|b|c|...}
in den Hilfeabschnitte für SysV Init / Emporkömmling Dienstskripten, die ein einzigartiges Argument erfordern , die eine von ista
,b
,c
, etc. Zum Beispiel,service sddm
ohne ein Argument auf meinem System drucktUsage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}
. So würden die meisten Leute wahrscheinlich verstehenusage: move {+|-}pixels}
, besonders wenn ein Beispiel gegeben wird:example: move +5
Schauen Sie sich docopt an . Es ist ein formaler Standard zum Dokumentieren (und automatischen Parsen) von Befehlszeilenargumenten.
Beispielsweise...
quelle
Ich denke, es gibt keine Standardsyntax für die Verwendung der Befehlszeile, aber die meisten verwenden diese Konvention:
Microsoft- Befehlszeilensyntax , IBM hat eine ähnliche Befehlszeilensyntax
Text without brackets or braces
Elemente, die Sie wie gezeigt eingeben müssen
<Text inside angle brackets>
Platzhalter, für den Sie einen Wert angeben müssen
[Text inside square brackets]
Extras
{Text inside braces}
Satz erforderlicher Gegenstände; wähle ein
Vertikale Leiste
{a|b}
Trennzeichen für sich gegenseitig ausschließende Gegenstände; wähle ein
Ellipse
<file> …
Elemente, die wiederholt werden können
quelle
Wir verwenden Linux, ein größtenteils POSIX-kompatibles Betriebssystem. POSIX-Standards sollten es sein: Utility Argument Syntax .
-o
.-o argument
oder-oargument
.-lst
entspricht beispielsweise-t -l -s
.-lst
gleichbedeutend mit-tls
.-lst
Nichtoption.--
Argument beendet Optionen.-
Option wird normalerweise verwendet, um einen der Standardeingabestreams darzustellen.quelle
man aptitude
, das dies (unter anderem) ausgibt :aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...
. Es enthält {und} zum Binden alternativer Pflichtbefehle. Ich denke (und) könnte für das gleiche verwendet werden, wie sie in docopt verwendet werden .Microsoft hat eine eigene Command Line Standard-Spezifikation :
quelle
-?
,-Help
,-Version
, etc.). Die Antwort von IMO Steely Wing ist näher an der Marke.Der GNU Coding Standard ist eine gute Referenz für solche Dinge. Dieser Abschnitt befasst sich mit der Ausgabe von
--help
. In diesem Fall ist es nicht sehr spezifisch. Sie können wahrscheinlich nichts falsch machen, wenn Sie eine Tabelle mit den kurzen und langen Optionen und einer kurzen Beschreibung drucken. Versuchen Sie, den Abstand zwischen allen Argumenten für die Lesbarkeit richtig zu machen. Sie möchten wahrscheinlich eineman
Seite (und möglicherweise eininfo
Handbuch) für Ihr Tool bereitstellen, um eine ausführlichere Erklärung zu erhalten.quelle
Ja, du bist auf dem richtigen Weg.
Ja, eckige Klammern sind der übliche Indikator für optionale Elemente.
Wie Sie bereits skizziert haben, befindet sich oben eine Befehlszeilenübersicht, gefolgt von Details, idealerweise mit Beispielen für jede Option. (Ihr Beispiel zeigt Zeilen zwischen den einzelnen Optionsbeschreibungen, aber ich gehe davon aus, dass dies ein Bearbeitungsproblem ist und dass Ihr reales Programm eingerückte Optionslisten ohne dazwischen liegende Leerzeilen ausgibt. Dies wäre in jedem Fall der Standard.)
Ein neuerer Trend (vielleicht gibt es eine POSIX-Spezifikation, die dies behebt?) Ist die Eliminierung des Manpage-Systems zur Dokumentation und die Einbeziehung aller Informationen, die in einer Manpage als Teil der enthalten wären
program --help
Ausgabe enthalten . Dieses Extra enthält längere Beschreibungen, erläuterte Konzepte, Verwendungsbeispiele, bekannte Einschränkungen und Fehler, das Melden eines Fehlers und möglicherweise einen Abschnitt "Siehe auch" für verwandte Befehle.Ich hoffe das hilft.
quelle
-h|--help
sollte nur eine zusammengefasste Referenz sein. Sie können auch eine umfassendere Dokumentation (Tutorials usw.) in HTML- oder Infoseiten einfügen. Aber die Manpage sollte da sein!someCommand --help
an meiner Shell tippe, brauche ich nur eine kleine Erinnerung an die genaue Reihenfolge der Argumente, nicht einen riesigen Textstreifen, der den Bildschirm ausfüllt, und ich muss ihnless
nur weiterleiten, um alles zu sehen. Auf der Manpage sollte sich die lange detaillierte Beschreibung befinden, nicht der Hilfetext.Ich würde offizielle Projekte wie Teer als Beispiel verfolgen. Meiner Meinung nach helfen msg. muss so einfach und beschreibend wie möglich sein. Anwendungsbeispiele sind auch gut. Es besteht kein wirklicher Bedarf an "Standardhilfe".
quelle
tar
... Wenn jemand ein Allzweck-Dienstprogramm wie Teer herstellen möchte, machen Sie bitte die kurzen Schalter unvergesslich und fügen Sie einen Abschnitt "Beispielverwendung" in das Feld ein--help
. In 90% der Fälle schaue ich mir die Anweisungen von tar an, um eine einfache zu extrahierentar.gz
.