Ich habe eine Reihe von Funktionen in meinem .bashrc
definiert, die interaktiv in einem Terminal verwendet werden sollen. Ich habe ihnen im Allgemeinen einen Kommentar vorangestellt, in dem die beabsichtigte Verwendung beschrieben wird:
# Usage: foo [bar]
# Foo's a bar into a baz
foo() {
...
}
Dies ist in Ordnung, wenn Sie den Quellcode durchsuchen, aber es ist schön, type
im Terminal ausgeführt zu werden, um eine schnelle Erinnerung an die Funktionsweise der Funktion zu erhalten. Dies beinhaltet jedoch (verständlicherweise) keine Kommentare:
$ type foo
foo is a function
foo ()
{
...
}
Was mich zum Nachdenken brachte: "Wäre es nicht schön, wenn diese Art von Kommentaren fortbestehen würde, damit type
sie angezeigt werden könnten?" Und im Geiste von Pythons Docstrings habe ich mir Folgendes ausgedacht :
foo() {
: Usage: foo [bar]
: "Foo's a bar into a baz"
...
}
$ type foo
foo is a function
foo ()
{
: Usage: foo [bar];
: "Foo's a bar into a baz";
...
}
Jetzt ist die Nutzung direkt in der enthalten type
Ausgabe enthalten! Wie Sie sehen, wird das Zitieren natürlich zu einem Problem, das fehleranfällig sein kann, aber es ist eine schönere Benutzererfahrung, wenn es funktioniert.
Meine Frage ist also, ist das eine schreckliche Idee? Gibt es bessere Alternativen (wie ein man
/ info
für Funktionen), um Benutzern von Bash-Funktionen zusätzlichen Kontext bereitzustellen?
Idealerweise möchte ich immer noch, dass sich die Gebrauchsanweisungen in der Nähe der Funktionsdefinition befinden, damit die Benutzer des Quellcodes ebenfalls den Vorteil erhalten. Wenn es jedoch einen "richtigen" Weg gibt, bin ich offen für Alternativen.
Bearbeiten Sie diese sind alles ziemlich einfache Funktionen im Helfer-Stil und ich möchte nur interaktiv einen zusätzlichen Kontext erhalten. Sicherlich würde ich für komplexere Skripte, die Flags analysieren, eine --help
Option hinzufügen , aber für diese wäre es etwas mühsam, allen Hilfe-Flags hinzuzufügen. Vielleicht ist das nur ein Preis, den ich akzeptieren sollte, aber dieser :
Hack scheint ziemlich gut zu funktionieren, ohne dass die Quelle viel schwieriger zu lesen ist.
quelle
--help
Option hinzufügen .--help
ist auch nicht invasiv, was meiner Meinung nach in diesem Fall mein Hauptkriterium ist. Möglicherweise verwende ich den:
Trick, da er direkter zu meinem Anwendungsfall passt, aber ich schätze es, dass Sie darauf hinweisen, dass es nicht schwer zu unterstützen ist--help
und dass die meisten Benutzer ihn erwarten werden.getopts
.