Sujet : Re: règle pour écrire les "usage: ..."
De : alain (at) *nospam* universite-de-strasbourg.fr.invalid (Alain Ketterlin)
Groupes : fr.comp.os.unixDate : 09. Jul 2022, 22:21:18
Autres entêtes
Organisation : Université de Strasbourg
Message-ID : <87a69ix9rl.fsf@universite-de-strasbourg.fr.invalid>
References : 1 2 3
User-Agent : Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Thomas <
fantome.forums.tDeContes@free.fr.invalid> writes:
In article <tab00r$v6d7$1@dont-email.me>, ST <st@unices.org> wrote:
>
On 2022-07-08, Thomas <fantome.forums.tDeContes@free.fr.invalid> wrote:
bonjour :-)
>
>
est-ce qu'on peut trouver qqpart une règle pour écrire les "usage: ..." ?
>
par ex, je sais que [] indique qqch de facultatif, mais il y a plein
d'autres choses que je ne connais pas / pas bien.
Pour ma part, je comprendrais tout de suite [], | (avec ou sans
parenthèses autour si c'est simple), et ... pour la répétition.
Je ne crois pas qu'il y ait vraiment un standard. C'est essentiellement
un notation pour des expressions régulières, avec ... qui est plus utile
que * (ce serait + pour les expressions régulières, mais ce n'est pas
une construction primitive). Mais c'est rare qu'on ait besoin de toute la
puissance des expression régulières pour des arguments, donc les
notations sont plus "intuitives".
par ex, si j'écris :
>
usage: rapid [-v] (gui_file | -ni [-od dir] gui_file...)
>
est-ce que tout le monde comprend, sans ambiguité ?
>
"-v" est optionnel
Le "|" marque est un choix entre ce qui est à gauche et ce qui est à
droite, dans lequel "-od dir" est optionnel.
>
je me posais des questions notamment sur :
- () que je ne me rappelle pas avoir vu (j'ai utilisé ça comme le
symbole mathématique)
Personnellement je préfère éviter |, ce qui évite aussi les parenthèses
en général. Par exemple, chez moi la page de man de sort indique
sort [OPTION]... [FILE]...
sort [OPTION]... --files0-from=F
(note le retour de l'étoile, sous la forme [x]...)
- ... que j'ai déjà vu, mais ça me donne une sensation de non-rigoureux
(donc je posais la question en même temps, ça coute rien ...)
Je pense qu'il y a un peu de folklore là-dessous : les grammaires des
langages de programmation sont souvent décrites dans le formalisme BNF
(Backus Naur Form -- ou EBNF quand c'est "extended"), c'est-à-dire avec
des expressions régulières en partie droite. C'est donc souvent *très*
rigoureux.
J'ai le souvenir de manuels SQL qui utilisaient massivement ... (peut
être parce que c'est "visuel"). L'usage dans les synposis de commandes
est sûrement plus ancien, cela dit.
- je crois qu'on utilise qqfois {}, mais je ne me rappelle plus ce que
ça veut dire.
Répétition un nombre explicite (ou un intervalle de nombres) : FILE{3,7}
signifierait "entre 3 et 7 fichiers". C'est comme ça que je le
comprendrais, mais je ne crois pas l'avoir jamais vu utilisé pour des
arguments de commandes.
en passant, je viens de m'apercevoir qu'avant on avait :
>
$ ls -z
ls: illegal option -- z
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Encore une notation différente : ici [] signifie aussi bien "optionnel"
que "n'importe lesquels des caractères de la liste" ; dans le second cas,
le "-" doit être en tête. Cela ne correspond à aucune notation formelle
connue, mais je pense que tout le monde comprend.
Bref, c'est la jungle, mais [], |, et ... sont usuels pour des arguments
de commande.
et maintenant :
>
$ ls -z
ls : option invalide -- 'z'
Saisissez « ls --help » pour plus d'informations.
$ mkdir -a
mkdir : option invalide -- 'a'
Saisissez « mkdir --help » pour plus d'informations.
>
est-ce que le "usage: ..." serais tombé en désuétude ?
Si l'ordre des options est sans importance, il vaut peut-être mieux en
donner une liste linéaire, comme le fait en général --help (ou le man).
Un synopsis "mkdir [-m mode] [-p]" aurait l'air d'imposer l'ordre.
Pour "ls" il y a tellement d'options (avec certaines uniquement sous
forme longue) qu'un synopsis n'a plus grand sens de toute façon. La
seule question que je me pose en voyant le "usage" ci-dessus est :
pourquoi pas -j ou -z ? Mais le chance que j'y trouve l'option que je
cherche est à peu près nulle.
-- Alain.