Ti risponderò in modo più generale , guardando un po 'l'intera " esperienza di apprendimento Unix ".
Nel tuo esempio usi due strumenti e vedi che la lingua è simile. Non è chiaro quando usare esattamente cosa. Ovviamente puoi aspettarti che ci sia una struttura chiara , quindi ci chiedi di spiegarlo.
Il caso con lo spazio intorno =
è solo un esempio: ci sono molti casi simili ma piuttosto bot .
Ci deve essere una logica in esso, giusto ?!
Le regole su come scrivere il codice per alcuni strumenti , shell, database ecc dipendono solo da ciò che richiede questo particolare strumento .
Ciò significa che gli strumenti sono completamente indipendenti , tecnicamente. La relazione logica che penso ti aspetti semplicemente non esiste .
L'ovvia somiglianza delle lingue che vedi non fa parte dell'implementazione del programma . La somiglianza esiste perché gli sviluppatori avevano concordato come farlo quando l'hanno scritta per un determinato programma. Ma gli umani possono essere d'accordo solo parzialmente .
La relazione che state vedendo è una cultura cosa - è né parte della realizzazione , né nel definizione del linguaggio .
Quindi, ora che abbiamo trattato la teoria, cosa fare in pratica?
Un grande passo è accettare che non esista la coerenza che ci si aspettava - il che è molto più semplice quando si capiscono le ragioni - spero che la parte teorica aiuti in questo.
Se hai due strumenti, che non usano lo stesso linguaggio di configurazione (es. Entrambi script bash), conoscere i dettagli della sintassi di uno non aiuta molto a capire l'altro;
Quindi, in effetti, dovrai cercare i dettagli in modo indipendente . Assicurati di sapere dove trovare la documentazione di riferimento per ciascuno.
Sul lato positivo, c'è una certa coerenza in cui non te lo aspettavi: nel contesto di un singolo strumento (o strumenti diversi che usano la stessa lingua), puoi essere abbastanza sicuro che la sintassi sia coerente.
Nel tuo mysql
esempio, ciò significa che puoi presumere che tutte le linee abbiano la stessa regola. Quindi la regola è "lo spazio prima e dopo non=
è rilevante ".
Esistono grandi differenze nella difficoltà di apprendere o utilizzare il linguaggio di configurazione o di scripting di uno strumento.
Può essere un po 'come " Elenca i valori foo in cmd-foo.conf, uno per riga.".
Può essere un linguaggio di scripting completo utilizzato anche altrove. Quindi hai un potente strumento per scrivere la configurazione - e in alcuni casi è semplicemente bello, in altri ne avrai davvero bisogno.
Strumenti complessi o famiglie numerose di strumenti correlati a volte usano solo una sintassi di file di configurazione speciale molto complessa (alcuni esempi famosi sono sendmail
e vim
).
Altri usano uno scripting generalelingua come base ed estendere quella lingua per supportare le esigenze speciali , a volte in modi complessi, come la lingua lo consente. Sarebbe un caso molto specifico di un linguaggio specifico del dominio ( DSL ) .