Contestaré eso de una manera más general , observando un poco toda la " experiencia de aprendizaje de Unix ".
En su ejemplo, usa dos herramientas y ve que el idioma es similar. Simplemente no está claro cuándo usar qué exactamente. Por supuesto, puede esperar que haya una estructura clara , por lo que nos pide que le expliquemos eso.
El caso con el espacio alrededor =
es solo y un ejemplo: hay muchos casos similares, pero bastante aburridos.
No tiene que haber una lógica en ella, ¿verdad ?!
Las reglas sobre cómo escribir código para alguna herramienta , shell, base de datos, etc. solo dependen de lo que requiera esta herramienta en particular .
Eso significa que las herramientas son completamente independientes , técnicamente. La relación lógica que creo que esperas simplemente no existe .
La similitud obvia de los lenguajes que está viendo no forma parte de la implementación del programa . La similitud existe porque los desarrolladores habían acordado cómo hacerlo cuando lo escribieron para un programa en particular. Pero los humanos solo pueden estar de acuerdo parcialmente .
La relación que está viendo es una cultura cosa - es ni parte de la aplicación , ni en la definición de la lengua .
Entonces, ahora que hemos manejado la teoría, ¿qué hacer en la práctica?
Un gran paso es aceptar que la consistencia que esperaba no existe , lo que es mucho más fácil al comprender las razones , espero que la parte de la teoría ayude con esto.
Si tiene dos herramientas que no usan el mismo lenguaje de configuración (por ejemplo, ambos scripts de bash), conocer los detalles de la sintaxis de uno no ayuda mucho a comprender el otro;
Entonces, de hecho, tendrá que buscar detalles de forma independiente . Asegúrese de saber dónde encuentra la documentación de referencia para cada uno.
En el lado positivo, hay cierta coherencia donde no lo esperaba: en el contexto de una sola herramienta (o diferentes herramientas que usan el mismo lenguaje), puede estar bastante seguro de que la sintaxis es coherente.
En su mysql
ejemplo, eso significa que puede suponer que todas las líneas tienen la misma regla. Entonces la regla es "el espacio antes y después no=
es relevante ".
Existen grandes diferencias en lo difícil que es aprender o usar el lenguaje de configuración o scripting de una herramienta.
Puede ser algo así como " Listar valores foo en cmd-foo.conf, uno por línea".
Puede ser un lenguaje de script completo que también se usa en otros lugares. Entonces tiene una herramienta poderosa para escribir la configuración, y en algunos casos eso es bueno, en otros realmente lo necesitará.
Las herramientas complejas o las grandes familias de herramientas relacionadas a veces solo usan una sintaxis de archivo de configuración especial muy compleja (algunos ejemplos famosos son sendmail
y vim
).
Otros usan una secuencia de comandos generalidioma como base, y extienda ese idioma para satisfacer las necesidades especiales , algunas veces de manera compleja, según lo permita el idioma. Ese sería un caso muy específico de un lenguaje específico de dominio ( DSL ) .