Convention / norme sur l'utilisation d'accolades autour des options

10

La page de manuel pour tar dans la section SYNOPSIS d' Arch Linux commence par:

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

Je comprends parfaitement que dans cette situation, cela signifie que l'une des options dans les accolades doit être donnée car elle est indiquée plus bas dans la page de manuel. Existe-t-il une sorte de norme ou de convention sur l'utilisation de {} autour d'une liste d'options mutuellement exclusives?

Tout ce que je peux trouver est un tutoriel de groupe d'utilisateurs àman partir de 1998 où il est dit:

Certaines options auront une liste limitée de choix. Une liste de choix sera séparée par des virgules et placée entre accolades.

{choix1, choix2} {oui, non}

On dirait que chaque convention (comme celle du groupe ouvert ) ou la page de manuel ne décrit que des crochets ([) ou des lignes verticales (|).

umbasa
la source
1
Habituellement, je pense <>que c'est obligatoire, mais je suppose que c'est réservé aux arguments plutôt qu'aux options. Counter: la version Ubuntu de la page de manuel GNU tar ( manpages.ubuntu.com/manpages/trusty/en/man1/tar.1.html , pour sa part) n'utilise pas ce formulaire, ni linux.die.net/man/ 1 / tar ou Debian . Je pense que vous pourriez regarder la page de manuel de BSD tar, donc si une convention existe, ce pourrait être une chose BSD.
muru
en amont pour les pages de manuel arch est man7.org , la page tar est exactement la même man7.org/linux/man-pages/man1/tar.1.html .
umbasa
2
J'ai toujours pensé que la syntaxe de la ligne de commande venait d' ENBF , mais {} dans ENBF signifie exactement le contraire (répétition d'argument au lieu d'un choix possible comme dans la situation tar). J'ai essayé de google {} syntax dans le but de windows et il semble que {} est très courant sur windows, il a même une description sur technet . Soupir, j'essaye peut-être trop de trouver la vérité.
umbasa

Réponses:

5

C'est une grande question (et toujours ouverte 3 ans plus tard). Je pense que la réponse est maintenant officiellement répondue dans ce document Google :

  • Articles requis: pas de supports
  • Éléments facultatifs mutuellement exclusifs: crochets, délimités par des tuyaux
  • Éléments mutuellement exclusifs requis: Bretelles bouclées, tuyau délimité
TSG
la source
1

Existe-t-il une sorte de norme ou de convention sur l'utilisation de {} autour d'une liste d'options mutuellement exclusives?

Je recherchais la signification de la signification des options spécifiées entre accolades ({}) par rapport aux options spécifiées entre crochets ([]) lorsque je suis tombé sur votre question. C'est la seule source d'information que j'ai trouvée utile par rapport à ce que je cherchais à comprendre, à savoir pourquoi les options sont-elles indiquées entre accolades.

Comme vous l'avez écrit:

Je comprends parfaitement que dans cette situation, cela signifie que l'un d'eux doit être donné ...

En lisant la page de manuel de netstat, j'ai compris que les options étaient les options disponibles pour une utilisation avec une commande qui doivent être utilisées / déclarées avant d'utiliser toute autre option pouvant être répertoriée avec la commande ET exactement une seule des options répertoriées séparés par la barre verticale peuvent être utilisés.

Un exemple de ce qui précède peut être trouvé dans la page de manuel de la commande netstat:

netstat {--route | -r} [adresses_options_famille] [--extend | -e [- étendre | -e]] [--verbose | -v] [--numeric | -n] [--numeric-hosts ] [- ports-numériques] [- ports-numériques] [--continuous | -c] [delay]

Source: netstat (8) | Page de manuel Linux

En substance, on peut utiliser exactement l'un de --route ou -r (ils signifient la même chose) mais l'option doit précéder les autres options listées.

J'ai seulement pris le temps de répondre à votre question car la question semble rester ouverte mais il me semble que vous avez répondu à votre propre question :)

Une convention n'est qu'une pratique largement établie. Qu'il soit explicitement déclaré ou non, le fait que vous trouviez régulièrement les documents de l'homme dans ce format indique que la convention (en supposant que je l'ai correctement énoncée ci-dessus) est fermement établie.

Existe-t-il une "norme"? Pour moi, cela dépend de la définition que vous souhaitez adopter pour "standard". Pour moi, il n'y a pas ou peu de distinction entre le sens des mots convention et norme, dans le sens où nous utilisons le terme ici. En ce sens, je considère que les deux mots signifient quelque chose dans le sens de "quelque chose qui est mutuellement convenu, utilisé et accepté comme la norme".

Merci de votre temps pour m'aider à comprendre cette convention / norme.

Darren Gansberg
la source