Я отвечу на это в более общем виде - немного рассмотрев весь « опыт обучения Unix ».
В вашем примере вы используете два инструмента и видите, что язык похож. Просто непонятно, когда использовать что именно. Конечно, вы можете ожидать четкой структуры , поэтому просите нас объяснить это.
Случай с пространством вокруг =
только и пример - есть много подобных, но бот-вполне случаев.
В этом должна быть логика, верно ?!
В правила , как писать код для некоторого инструмента , оболочки, базы данных и т.д. только зависит от того, что именно этот инструмент требует .
Это означает, что инструменты полностью независимы , технически. Логическое отношение , что я думаю , что вы ожидаете , просто не существует .
Очевидное сходство языков, которые вы видите, не является частью реализации программы . Сходство существует, потому что разработчики договорились, как это сделать, когда они записали это для конкретной программы. Но люди могут согласиться только частично .
Отношение вы видите , это культурная вещь - это ни часть реализации , ни в определении языка .
Итак, теперь, когда мы изучили теорию, что делать на практике?
Большой шаг состоит в том, чтобы признать, что согласованности, которую вы ожидали , не существует - что гораздо легче понять причины - я надеюсь, что теоретическая часть поможет в этом.
Если у вас есть два инструмента, которые не используют один и тот же язык конфигурации (например, оба сценария bash), знание деталей синтаксиса одного не очень помогает в понимании другого;
Так что, действительно, вам придется искать детали самостоятельно . Убедитесь, что вы знаете, где вы найдете справочную документацию для каждого.
С другой стороны, есть некоторая последовательность, в которой вы этого не ожидали: в контексте одного инструмента (или различных инструментов, использующих один и тот же язык), вы можете быть достаточно уверены, что синтаксис последовательный.
В вашем mysql
примере это означает, что вы можете предполагать, что все строки имеют одинаковое правило. Таким образом, правило «пространство до и после того, как =
это не имеет значения ».
Существуют большие различия в том, насколько трудно выучить или использовать язык конфигурации или сценариев инструмента.
Это может быть что-то вроде « Список значений foo в cmd-foo.conf, по одному на строку.».
Это может быть полноценный язык сценариев, который также используется в других местах. Тогда у вас есть мощный инструмент для написания конфигурации - и в некоторых случаях это просто замечательно, в других вам это действительно нужно.
Сложные инструменты или большие семейства связанных инструментов иногда просто используют очень сложный специальный синтаксис файла конфигурации - (некоторые известные примеры - sendmail
и vim
).
Другие используют общий сценарийязык как базовый, и расширить этот язык для удовлетворения особых потребностей , иногда сложными способами, насколько позволяет язык. Это был бы очень специфический случай предметно-ориентированного языка ( DSL ) .