Eu responderei isso de uma maneira mais geral - analisando um pouco toda a " experiência de aprendizado do Unix ".
No seu exemplo, você usa duas ferramentas e vê que o idioma é semelhante. Não está claro quando usar o que exatamente. Claro que você pode esperar que exista uma estrutura clara , então você nos pede para explicar isso.
O caso com o espaço ao redor =
é apenas um exemplo - existem muitos casos semelhantes, mas muito ruins.
Não tem que ser uma lógica nisso, certo ?!
As regras de como escrever código para alguma ferramenta , shell, banco de dados, etc, dependem apenas do que essa ferramenta específica exige .
Isso significa que as ferramentas são completamente independentes , tecnicamente. A relação lógica que acho que você espera simplesmente não existe .
A semelhança óbvia das linguagens que você está vendo não faz parte da implementação do programa . A semelhança existe porque os desenvolvedores concordaram em fazê-lo quando o escreveram para um programa específico. Mas os humanos podem concordar apenas parcialmente .
A relação que você está vendo é uma coisa cultural - não faz parte da implementação , nem na definição da linguagem .
Então, agora que lidamos com a teoria, o que fazer na prática?
Um grande passo é aceitar que a consistência que você esperava não existe - o que é muito mais fácil ao entender os motivos - espero que a parte da teoria ajude com isso.
Se você possui duas ferramentas, que não usam a mesma linguagem de configuração (por exemplo, os dois scripts de bash), conhecer os detalhes da sintaxe de uma não ajuda muito na compreensão da outra;
Então, de fato, você terá que procurar detalhes de forma independente . Certifique-se de saber onde encontra a documentação de referência para cada um.
No lado positivo, há alguma consistência em que você não esperava: no contexto de uma única ferramenta (ou ferramentas diferentes usando a mesma linguagem), você pode ter certeza de que a sintaxe é consistente.
No seu mysql
exemplo, isso significa que você pode assumir que todas as linhas têm a mesma regra. Portanto, a regra é "o espaço antes e depois não=
é relevante ".
Existem grandes diferenças na dificuldade de aprender ou usar a linguagem de configuração ou script de uma ferramenta.
Pode ser algo como " Listar valores foo no cmd-foo.conf, um por linha".
Pode ser uma linguagem de script completa que também é usada em outros lugares. Então você tem uma ferramenta poderosa para escrever a configuração - e, em alguns casos, isso é legal; em outros, você realmente precisa disso.
Ferramentas complexas ou grandes famílias de ferramentas relacionadas às vezes usam apenas uma sintaxe de arquivo de configuração especial muito complexa - (alguns exemplos famosos são sendmail
e vim
).
Outros usam um script geralidioma como base e estenda esse idioma para atender às necessidades especiais , algumas vezes de maneiras complexas, conforme o idioma permitir. Esse seria um caso muito específico de uma linguagem específica de domínio ( DSL ) .