Esto es más acerca de la invocación de un programa, que cualquier lenguaje o analizador (aunque estoy seguro de que la elección de la biblioteca del analizador puede depender de esto). Mira, he usado muchas utilidades de línea de comandos de Linux. Y hay algunos patrones obvios; '-' precede una sola letra para opciones cortas, múltiples opciones que no toman argumentos se pueden combinar, '-' precede versiones largas de opciones, y así sucesivamente.¿Existen estándares para los modificadores y argumentos de la línea de comandos de Linux?
Sin embargo, en algunos casos, las mayúsculas se utilizan para invertir una opción. Entonces, '-d' podría significar que se ejecuta como daemon, pero '-D' sería no ejecutado como daemon. (¿Por qué no simplemente omite la opción si no la quiere? Eso nunca ha sido claro, pero en realidad es bastante común, así que creo que debe haber alguna razón). Pero en algunos programas, un capital es una opción completamente no relacionada; si '-d' se ejecuta como daemon, '-D' podría ser para habilitar el modo de depuración. ¿Hay algún tipo de director general detrás de esto y cuál es el mejor para elegir? ¿O solo estamos lidiando con "lo que sea que funcione"?
También hay algunos comandos que, además de (o en lugar de) opciones con argumentos, solo toman argumentos solitarios. cp es un buen ejemplo de esto; aparte de una pareja que rara vez se alterna, se presume que el último argumento que recibe es el destino, y se supone que todos los argumentos entre la lista de opciones y el destino son fuentes. ¿Existe una regla empírica cuando está "bien" confiar en un orden como ese, en lugar de usar banderas de opciones explícitas con argumentos?
No hay un estándar universal para las opciones de línea de comandos, aunque las convenciones 'getopt' son un buen punto de partida. Para responder a su pregunta sobre las opciones de inversión, el valor predeterminado generalmente se especifica en un archivo de configuración, por lo que necesita activar y desactivar la fuerza. – Borealid