¿Cómo interpretar la sintaxis de "uso" del comando bash?

11

¿Cómo exactamente debe interpretar la salida de una salida de "uso" de comandos, en bash, por ejemplo.

Por ejemplo, en mi OS X, cpme da

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é indican las opciones anidadas, como -H dentro de -R?
  • ¿Las mayúsculas y minúsculas tienen algún significado?
  • ¿Cuándo es un argumento opcional, requerido?

Necesito implementar una línea de comando telnet contra un programa mío y me gustaría aclarar esto.

Raoulsson
fuente

Respuestas:

15

Para cualquiera que intente comprender qué significa la salida de uso, la mejor manera es hacerlo man man.

en serio :-) Tómese el tiempo para aprender las convenciones, realmente ayuda.

   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.
Justin
fuente
+1 eliminando mi publicación como redundante.
Warner
man manen CentOS 6.6 no tiene esta sección; ni tampoco la versión de man manen Mac OS X 10.7.4. ¿Dónde puedo encontrarlo?
Comodín
Lo encontré, está man man-pagesen CentOS y man manpagesen Mac OS X (que usa comandos BSD).
Comodín
Esta respuesta, al igual que el man mancomando, no parece cubrir los casos en que la entrada debe ser uno de los elementos de una enumeración. Por ejemplo<env> - must be one of [dev | test | uat | perf | prod]
Addison el
2

En primer lugar, si bien existen convenciones generales, no se aplican de manera uniforme.

  • En este caso, se dice que si se utiliza -R(lo que indica "recursividad"), a continuación, puede utilizar cualquiera -H, -Lo -P. Si no usa -R, esas opciones no son relevantes.
  • Sí, el caso es casi siempre importante. Por lo general, -hy -Hhacer cosas completamente diferentes.
  • Los corchetes generalmente indican que una opción o argumento es "opcional". (Las cosas con guiones delante de ellas son "opciones", las palabras sin guiones son argumentos). Sin corchetes, generalmente se requiere la opción o argumento. En su ejemplo, se requieren tanto "source_file" como "target_directory". El "..." indica que el argumento anterior puede repetirse.

Otros puntos a destacar:

  • La barra vertical indica "O". Por lo tanto, [-fi | -n]indica que puede usar cualquiera -fy / o -ipero no en combinación con -n.
  • Las opciones agrupadas entre paréntesis indican que puede usar cualquiera de ellas. Entonces [-apvX]indica que puede usar cualquier combinación de esas opciones. Ni siquiera necesitan ser aplastados juntos. Entonces -a -v -psería una combinación válida.
Insyte
fuente