Jeśli nie, czy istnieje de facto standard? Zasadniczo piszę tekst pomocy w wierszu polecenia:
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
Zrobiłem to po prostu po przeczytaniu tekstu pomocy różnych narzędzi, ale czy istnieje lista wskazówek czy coś takiego? Na przykład, czy używam nawiasów kwadratowych lub nawiasów? Jak korzystać z odstępów? Co jeśli argument jest listą? Dzięki!
--help
powinny wyglądać dane wyjściowe . Ale oba pytania są dobrym kandydatem do fuzji.Odpowiedzi:
Zazwyczaj dane wyjściowe pomocy powinny obejmować:
[options]
do wskazania, dokąd idą opcjearg_name
dla wymaganego, pojedynczego arg[arg_name]
dla opcjonalnego pojedynczego argarg_name...
dla wymaganego argumentu, którego może być wiele (jest to rzadkie)[arg_name...]
dla argumentu, dla którego można podać dowolną liczbęarg_name
powinna to być opisowa, krótka nazwa, w dolnej, wężowej formie-l
) Lub długi formularz (np.--list
), Dołącz je razem w tym samym wierszu, ponieważ ich opisy będą takie sameGREP_OPTS
Zwróć ponadto uwagę, że dobrą formą jest zaakceptowanie obu
-h
i--help
wyzwolenie tego komunikatu oraz że powinieneś pokazać ten komunikat, jeśli użytkownik zepsuje składnię wiersza poleceń, np. Pominie wymagany argument.źródło
usage: move (+|-)pixels
to znaczy kiedy jeden+
lub-
jest obowiązkowe ? (Wiem, że mogę mieć 2 wiersze użycia, ale podoba mi się pomysł podwojenia ich przy każdym nowym argumencie). Czy możesz pomyśleć o przykładzie ze standardowego narzędzia?{a|b|c|...}
w sekcji pomocy dla SysV init / nowobogackich skryptów usług, które wymagają swoistą argument, że jest jednym za
,b
,c
, itd. Na przykład,service sddm
bez argument w moim systemie wypisujeUsage: /etc/init.d/sddm {start|stop|status|restart|try-restart|force-reload}
. Więc większość ludzi prawdopodobnie zrozumieusage: move {+|-}pixels}
, zwłaszcza jeśli podany zostanie przykład:example: move +5
Spójrz na docopt . Jest to formalny standard dokumentowania (i automatycznego parsowania) argumentów wiersza poleceń.
Na przykład...
źródło
Myślę, że nie ma standardowej składni dla użycia wiersza poleceń, ale większość korzysta z tej konwencji:
Składnia wiersza polecenia Microsoft , IBM ma podobną składnię wiersza polecenia
Text without brackets or braces
Elementy, które musisz wpisać, jak pokazano
<Text inside angle brackets>
Symbol zastępczy, dla którego musisz podać wartość
[Text inside square brackets]
Przedmioty opcjonalne
{Text inside braces}
Zestaw wymaganych przedmiotów; Wybierz jeden
Pionowy pasek
{a|b}
Separator dla przedmiotów wykluczających się wzajemnie; Wybierz jeden
Elipsa
<file> …
Elementy, które można powtórzyć
źródło
Używamy Linuksa, systemu operacyjnego w większości zgodnego z POSIX. Standardy POSIX powinny być: Składnia argumentów narzędzia .
-o
.-o argument
lub-oargument
.-lst
jest równoważne z-t -l -s
.-lst
jest więc równoważne z-tls
.-lst
braku opcji : brak opcji.--
Argumentem kończy opcje.-
opcja jest zwykle używana do reprezentowania jednego ze standardowych strumieni wejściowych.źródło
man aptitude
, że wyprowadza to (między innymi):aptitude [<options>...] {add-user-tag | remove-user-tag} <tag> <packages>...
. Zawiera {i} do wiązania alternatywnych poleceń obowiązkowych. Myślę, że (i) mogą być użyte w taki sam sposób, jak w docopt .Microsoft ma własną specyfikację wiersza polecenia :
źródło
-?
,-Help
,-Version
, itd.). Odpowiedź IMO Steely Wing jest bliżej znaku.Standard kodowania GNU jest dobrym odniesieniem do takich rzeczy. Ta sekcja dotyczy wyników
--help
. W tym przypadku nie jest bardzo konkretny. Prawdopodobnie nie możesz się pomylić z wydrukowaniem tabeli przedstawiającej krótkie i długie opcje oraz zwięzły opis. Spróbuj uzyskać odpowiedni odstęp między wszystkimi argumentami, aby zapewnić czytelność. Prawdopodobnie chcesz podaćman
stronę (i ewentualnieinfo
instrukcję) swojego narzędzia, aby uzyskać bardziej szczegółowe wyjaśnienia.źródło
tak, jesteś na dobrej drodze.
tak, nawiasy kwadratowe są zwykłym wskaźnikiem dla przedmiotów opcjonalnych.
Zazwyczaj, jak naszkicowałeś, u góry znajduje się podsumowanie linii poleceń, a następnie szczegóły, najlepiej z próbkami dla każdej opcji. (Twój przykład pokazuje linie pomiędzy opisami każdej opcji, ale zakładam, że jest to problem z edycją i że twój prawdziwy program wyświetla wcięte listy opcji bez pustych linii pomiędzy nimi. W każdym razie byłby to standard.)
Nowszym trendem (być może istnieje specyfikacja POSIX, która rozwiązuje ten problem?), Jest wyeliminowanie systemu stron podręcznika dla dokumentacji i uwzględnienie wszystkich informacji, które byłyby na stronie podręcznika jako część
program --help
wyniku. Dodatek ten będzie zawierał dłuższe opisy, wyjaśnione pojęcia, przykłady użycia, znane ograniczenia i błędy, jak zgłosić błąd i ewentualnie sekcję „zobacz także” dotyczącą powiązanych poleceń.Mam nadzieję, że to pomoże.
źródło
-h|--help
powinno być tylko streszczonym odwołaniem. Możesz także dołączyć bardziej obszerną dokumentację (samouczki itp.) Do stron HTML lub informacyjnych. Ale strona podręcznika powinna tam być!someCommand --help
w mojej powłoce, potrzebuję tylko małego przypomnienia o dokładnej kolejności, w jakiej idą argumenty, a nie ogromnego pokosu tekstu, który wypełnia ekran, wymagając od niego włożenia goless
tylko po to, aby zobaczyć wszystko. Strona powinna znajdować się w miejscu, w którym należy umieścić długi szczegółowy opis, a nie tekst pomocy.Jako przykład podążałbym za oficjalnymi projektami takimi jak tar. Moim zdaniem pomoc msg. musi być prosty i opisowy, jak to możliwe. Przykłady użycia są również dobre. Nie ma potrzeby „standardowej pomocy”.
źródło
tar
... jeśli ktoś ma zamiar zrobić wszystko, co boskie, na przykład tar, spraw, aby krótkie przełączniki były niezapomniane, i dołącz sekcję „przykładowe użycie” w--help
. W 90% przypadków patrzę na instrukcje tar, aby wyodrębnić prostytar.gz
.