11 votes

Comment interpréter la syntaxe de la commande bash "usage" ?

Comment interpréter exactement la sortie "usage" d'une commande, dans bash par exemple.

Par exemple, sur mon OS X, cp me donne

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvX] source_file ... target_directory
  • Qu'indiquent les options imbriquées, comme -H dans -R ?
  • Les majuscules et les minuscules ont-elles une signification ?
  • Quand un argument est-il facultatif, obligatoire ?

Je dois implémenter une ligne de commande telnet dans un de mes programmes et j'aimerais bien comprendre.

15voto

Justin Points 3736

Pour toute personne essayant de comprendre ce que signifie la sortie d'usage, le meilleur moyen est de man man .

sérieusement :-) Prenez le temps d'apprendre les conventions, cela aide vraiment.

   The following conventions apply to the SYNOPSIS section and can be used
   as a guide in other sections.

   bold text          type exactly as shown.
   italic text        replace with appropriate argument.
   [-abc]             any or all arguments within [ ] are optional.
   -a|-b              options delimited by | cannot be used together.
   argument ...       argument is repeatable.
   [expression] ...   entire expression within [ ] is repeatable.

2voto

Insyte Points 9294

Tout d'abord, s'il existe des conventions générales, elles ne sont pas appliquées de manière uniforme.

  • Dans ce cas, cela veut dire que si vous utilisez -R (indiquant "récursion"), alors vous pouvez utiliser soit -H , -L ou -P . Si vous n'utilisez pas -R alors ces options ne sont pas pertinentes.
  • Oui, le cas est presque toujours important. Donc, généralement -h y -H font des choses complètement différentes.
  • Les crochets indiquent généralement qu'une option ou un argument est "facultatif". (Les éléments précédés d'un trait d'union sont des "options", les mots sans trait d'union sont des arguments). Sans crochets, l'option ou l'argument est généralement obligatoire. Dans votre exemple, "fichier_source" et "répertoire_cible" sont tous deux requis. Le "..." indique que l'argument précédent peut être répété.

Autres points à noter :

  • La barre verticale indique "OU". Donc [-fi | -n] indique que vous pouvez utiliser soit -f et/ou -i mais pas en combinaison avec -n .
  • Les options groupées entre parenthèses indiquent que vous pouvez utiliser n'importe laquelle d'entre elles. Ainsi, [-apvX] indique que vous pouvez utiliser n'importe quelle combinaison de ces options. Elles n'ont même pas besoin d'être mélangées. Donc -a -v -p serait une combinaison valable.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X