La interfaz de línea de comandos de Linux/GNU sigue el estándar POSIX. Esto lo indica GNU en sus estándares:http://www.gnu.org/prep/standards/html_node/Command_002dLine-Interfaces.html.
La sintaxis de la línea de comandos también forma parte de la especificación Unix única, aunque --long-options es una innovación de GNU IIRC.
Consulte aquí:http://pubs.opengroup.org/onlinepubs/7908799/xbd/utilconv.html
Pero sí, este estándar se implementa como getopt.
Un breve resumen del hilo:
-
La CLI debe mostrar ayuda cuando faltan parámetros o son incorrectos, además del mensaje de error, si lo hubiera.
-
Deberías usar
-
para una bandera u opción de una sola letra y--
para una opción larga, por ejemplo-a
y--all
-
Todos los programas deben admitir dos opciones estándar:
-v
--version
y-h
--help
.-h
y--help
=> Dar mensaje de uso y salir-v
y--version
=> Mostrar la versión del programa y salir
Consulte los enlaces (IEEE y GNU getopt) proporcionados en esta respuesta https://stackoverflow.com/a/8957246
En general, sí.
- IEEE
- GNU getopt
ESR ha recopilado mucha información al respecto en su libro "El arte de la programación UNIX". Aquí hay un fragmento.
-a
Todos (sin argumento). Si hay una opción --all estilo GNU, para que -a sea cualquier cosa menos un sinónimo sería bastante sorprendente. Ejemplos:fuser(1), fetchmail(1).
Añadir, como en tar(1). Esto a menudo se combina con -d para borrar.
-b
Tamaño de búfer o bloque (con argumento). Establezca un tamaño de búfer crítico o (en un programa que tenga que ver con archivar o administrar medios de almacenamiento) establezca un tamaño de bloque. Ejemplos:du(1), df(1), tar(1).
Lote. Si el programa es naturalmente interactivo, se puede usar -b para suprimir indicaciones o configurar otras opciones apropiadas para aceptar entradas de un archivo en lugar de un operador humano. Ejemplo:flex(1).
-C
Comando (con argumento). Si el programa es un intérprete que normalmente toma comandos de la entrada estándar, se espera que se le pase la opción de un argumento -c como una sola línea de entrada. Esta convención es particularmente fuerte para shells e intérpretes similares a shells. Ejemplos:sh(1), ash(1), bsh(1), ksh(1),python(1). Compara -e a continuación.
Comprobar (sin argumento). Verifique la corrección de los argumentos de archivo para el comando, pero en realidad no realice el procesamiento normal. Utilizado con frecuencia como una opción de verificación de sintaxis por programas que interpretan archivos de comandos. Ejemplos:getty(1), perl(1).
Vea la lista completa en http://catb.org/~esr/writings/taoup/html/ch10s05.html