Я відповім на це в більш загальному вигляді - трохи переглянувши весь " досвід навчання Unix ".
У вашому прикладі ви використовуєте два інструменти, і див. Мова схожа. Просто незрозуміло, коли саме використовувати, що саме. Звичайно, ви можете очікувати, що існує чітка структура , тому ви просите, щоб ми це пояснили.
Справа з простором навколо =
є лише прикладом - є безліч подібних, але бот-цілком випадків.
У цьому має бути логіка, правда ?!
У правила , як писати код для деякого інструменту , оболонки, бази даних і т.д. тільки залежить від того, що саме цей інструмент вимагає .
Це означає, що інструменти технічно абсолютно незалежні . Логічне відношення , що я думаю , що ви очікуєте , просто не існує .
Очевидна схожість мов, які ви бачите, не є частиною реалізації програми . Подібність існує тому, що розробники домовилися, як це зробити, коли записали її для певної програми. Але люди можуть погодитися лише частково .
Ставлення ви бачите , це культурна річ - це ні частина реалізації , ні в визначенні мови .
Отже, тепер, коли ми розглядали теорію, що робити на практиці?
Великий крок - визнати, що очікуваної вами послідовності не існує - що набагато простіше при розумінні причин - я сподіваюся, що теоретична частина допомагає в цьому.
Якщо у вас є два інструменти, які не використовують однакову мову конфігурації (наприклад, обидва сценарії bash), знання деталей синтаксису одного не дуже допомагає зрозуміти інший;
Тож справді вам доведеться шукати деталі самостійно . Переконайтеся, що ви знаєте, де ви знайдете довідкову документацію для кожного.
З позитивної сторони, є певна послідовність, де ви цього не очікували: в контексті одного інструменту (або різних інструментів, що використовують одну і ту ж мову), ви можете бути впевнені в синтаксисі.
У вашому mysql
прикладі це означає, що ви можете припустити, що всі рядки мають одне правило. Таким чином, правило «простір до і після того, як =
це НЕ має значення ».
Існує велика різниця в тому, як важко вивчити або використовувати мову конфігурації чи сценаріїв інструменту.
Це може бути щось на зразок " Перерахуйте значення foo у cmd-foo.conf, по одному на рядок."
Це може бути повна мова сценаріїв, яка використовується і в інших місцях. Тоді у вас є потужний інструмент для написання конфігурації - а в деяких випадках це просто приємно, в інших вам це справді знадобиться.
Складні інструменти або великі родинні споріднені інструменти іноді просто використовують дуже складний синтаксис спеціального файлу конфігурації - (деякі відомі приклади є sendmail
і vim
).
Інші використовують загальний сценаріймови як основи, і розширити цю мову для підтримки особливих потреб , іноді складними способами, як це дозволяє мова. Це був би дуже специфічний випадок мови, що залежить від домену ( DSL ) .