Deutsch   English   Français   Italiano  
<87a69ix9rl.fsf@universite-de-strasbourg.fr.invalid>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!aioe.org!K7PIs9tCGQ+WHJa7e6BylQ.user.46.165.242.75.POSTED!not-for-mail
From: Alain Ketterlin <alain@universite-de-strasbourg.fr.invalid>
Newsgroups: fr.comp.os.unix
Subject: Re: =?utf-8?Q?r=C3=A8gle?= pour =?utf-8?Q?=C3=A9crire?= les "usage:
 ..."
Date: Sat, 09 Jul 2022 23:21:18 +0200
Organization: =?utf-8?Q?Universit=C3=A9?= de Strasbourg
Message-ID: <87a69ix9rl.fsf@universite-de-strasbourg.fr.invalid>
References: <62c8c4eb$0$24781$426a74cc@news.free.fr>
	<tab00r$v6d7$1@dont-email.me> <62c98a7b$0$18716$426a74cc@news.free.fr>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Injection-Info: gioia.aioe.org; logging-data="43438"; posting-host="K7PIs9tCGQ+WHJa7e6BylQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)
Cancel-Lock: sha1:VffyYzDImygoXUhHRyHAzEEPdh8=
X-Notice: Filtered by postfilter v. 0.9.2
Bytes: 5501
Lines: 116

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=C3=A8gle pour =C3=A9crire les "=
usage: ..." ?
>> >
>> > par ex, je sais que [] indique qqch de facultatif, mais il y a plein=20
>> > d'autres choses que je ne connais pas / pas bien.

Pour ma part, je comprendrais tout de suite [], | (avec ou sans
parenth=C3=A8ses autour si c'est simple), et ... pour la r=C3=A9p=C3=A9titi=
on.

Je ne crois pas qu'il y ait vraiment un standard. C'est essentiellement
un notation pour des expressions r=C3=A9guli=C3=A8res, avec ... qui est plu=
s utile
que * (ce serait + pour les expressions r=C3=A9guli=C3=A8res, mais ce n'est=
 pas
une construction primitive). Mais c'est rare qu'on ait besoin de toute la
puissance des expression r=C3=A9guli=C3=A8res pour des arguments, donc les
notations sont plus "intuitives".

>> > par ex, si j'=C3=A9cris :
>> >
>> > usage: rapid [-v] (gui_file | -ni [-od dir] gui_file...)
>> >
>> > est-ce que tout le monde comprend, sans ambiguit=C3=A9 ?
>> >
>>=20
>> "-v" est optionnel
>>=20
>> Le "|" marque est un choix entre ce qui est =C3=A0 gauche et ce qui est =
=C3=A0
>> 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=C3=A9 =C3=A7a comme =
le=20
> symbole math=C3=A9matique)

Personnellement je pr=C3=A9f=C3=A8re =C3=A9viter |, ce qui =C3=A9vite aussi=
 les parenth=C3=A8ses
en g=C3=A9n=C3=A9ral. Par exemple, chez moi la page de man de sort indique

       sort [OPTION]... [FILE]...
       sort [OPTION]... --files0-from=3DF

(note le retour de l'=C3=A9toile, sous la forme [x]...)

> - ... que j'ai d=C3=A9j=C3=A0 vu, mais =C3=A7a me donne une sensation de =
non-rigoureux=20
> (donc je posais la question en m=C3=AAme temps, =C3=A7a coute rien ...)

Je pense qu'il y a un peu de folklore l=C3=A0-dessous : les grammaires des
langages de programmation sont souvent d=C3=A9crites dans le formalisme BNF
(Backus Naur Form -- ou EBNF quand c'est "extended"), c'est-=C3=A0-dire avec
des expressions r=C3=A9guli=C3=A8res en partie droite. C'est donc souvent *=
tr=C3=A8s*
rigoureux.

J'ai le souvenir de manuels SQL qui utilisaient massivement ... (peut
=C3=AAtre parce que c'est "visuel"). L'usage dans les synposis de commandes
est s=C3=BBrement plus ancien, cela dit.

> - je crois qu'on utilise qqfois {}, mais je ne me rappelle plus ce que=20
> =C3=A7a veut dire.

R=C3=A9p=C3=A9tition un nombre explicite (ou un intervalle de nombres) : FI=
LE{3,7}
signifierait "entre 3 et 7 fichiers". C'est comme =C3=A7a que je le
comprendrais, mais je ne crois pas l'avoir jamais vu utilis=C3=A9 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=C3=A9rente : ici [] signifie aussi bien "optionnel"
que "n'importe lesquels des caract=C3=A8res de la liste" ; dans le second c=
as,
le "-" doit =C3=AAtre en t=C3=AAte. Cela ne correspond =C3=A0 aucune notati=
on 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=C2=A0: option invalide -- 'z'
> Saisissez =C2=AB=C2=A0ls --help=C2=A0=C2=BB pour plus d'informations.
> $ mkdir -a
> mkdir=C2=A0: option invalide -- 'a'
> Saisissez =C2=AB=C2=A0mkdir --help=C2=A0=C2=BB pour plus d'informations.
>
> est-ce que le "usage: ..." serais tomb=C3=A9 en d=C3=A9su=C3=A9tude ?

Si l'ordre des options est sans importance, il vaut peut-=C3=AAtre mieux en
donner une liste lin=C3=A9aire, comme le fait en g=C3=A9n=C3=A9ral --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=C3=A7on. 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 =C3=A0 peu pr=C3=A8s nulle.

-- Alain.