Sintaxis de comandos de Unix/Linux

Sintaxis de comandos de Unix/Linux

Cuando los comandos de Linux enumeran su uso, normalmente lo hacen así (por ejemplo, wget):

wget [option]... [URL]...

Por lo que entiendo de este patrón de especificación del uso de comandos, esta no es la forma habitual de expresión regular de especificar patrones y para el comando wget dice que no es obligatorio especificar ninguna opción y según esa lógica no es obligatorio especificar ninguna URL como Bueno. Quiero decir que puedo hacer directamente

wget www.google.com

y esto funcionará. Entonces las opciones no son obligatorias. Si las opciones no son obligatorias porque están entre corchetes, entonces seguir esa lógica especificando una URL tampoco debería ser obligatorio y simplemente

wget

como comando también debería funcionar. Mi pregunta es: ¿Existe algún documento en el que se explique este patrón para especificar el uso de comandos?

Respuesta1

Normalmente se utiliza una sintaxis donde [...] se utiliza para indicar argumentos opcionales y '|' se utiliza para indicar un OR lógico y se utiliza en la mayoría de las páginas de manual. Depende de quién escribe la página de manual, ya que no existe ninguna autoridad que dicte cómo debe leerse una página de manual. Sin embargo, más específico para su pregunta, la página de manual dice verdadero en este caso. Puede especificar una URL a través del modificador -i o puede proporcionar una URL propia. Así que puedes pensar en las opciones como "condicionalmente opcionales". Realmente probablemente debería leer algo como

      ([option (excluding -i)] (-i file | URL)) 

pero puedes ver cómo esto se complicaría muy rápidamente. Por lo tanto, debes tomar las descripciones rápidas con cautela. En mi experiencia, la sintaxis de los comandos suele ser la menor de tus preocupaciones.

Además, soy quisquilloso aquí, pero lo que estás viendo no es una expresión regular;)

Respuesta2

No creo que haya una definición formal para eso (podría estar equivocado), pero parece que no hay mucho estándar para esta lógica, a juzgar por una muestra aleatoria de algunas páginas de manual.

Respuesta3

esperaría que dijera

wget [options] URL...
wget [-i|--input-file] file [options] [URL...]

La línea de sinopsis única es algo común en las páginas de manual de GNU, donde la documentación autorizada es ladocumentación de informacióny la página de manual es un resumen muy breve que a menudo describe solo las opciones más comunes.

Compare esto con herramientas BSD comoalquitrány la herramienta independientesincronización.

Por otro lado,Convenciones de utilidad POSIXSe dice que se deben usar varias líneas de sinopsis para opciones mutuamente excluyentes, y la -iopción en realidad no es mutuamente excluyente.

Respuesta4

man 7 man-pages(del paquete de páginas de manual de Linux) explica algunas convenciones que debe tener en cuenta, incluso si hay algunas páginas de manual que no siguen las convenciones.

información relacionada