Spesso, i parametri della riga di comando sono documentati usando una notazione vagamente EBNF-ish come la seguente:
-
L'output di
dir /?
su Windows:DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
-
L'output di
netsh /?
su Windows:Usage: netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName\]UserName] [-p Password | *] [Command | -f ScriptFile]
-
La documentazione per
expand
su microsoft.com :expand [-r] source [destination] [-dsource.cab [-f:files]] [source.cab [-f:filesdestination] [-i]
-
La pagina man di Linux per
date
:date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
-
La pagina man di Linux per
compress
:compress [ -f ] [ -v ] [ -c ] [ -V ] [ -r ] [ -b bits ] [ name ... ]
Queste annotazioni hanno tutti formati simili:
-
[]
utilizzato per indicare i parametri facoltativi. -
|
utilizzato per separare le scelte esclusive. -
...
utilizzato per indicare che la cosa precedente si verifica più volte ([x]...
e[x...]
sono la stessa forma di questo). - Non mostrato negli esempi:
()
per il raggruppamento, in particolare quando sono coinvolti parametri non facoltativi e|
.
La mia domanda è: ho sempre pensato che i parametri della riga di comando siano documentati in questo modo. È facile da capire perché è praticamente onnipresente e, quando li registro personalmente, lo faccio naturalmente in questo modo. Tuttavia, questa notazione ha un nome?
Ad esempio, se dovessi scrivere alcune linee guida sulla documentazione che dicevano "tutti i parametri della riga di comando devono essere documentati in formato