Tôi sẽ trả lời rằng theo một cách tổng quát hơn - nhìn một chút vào toàn bộ " trải nghiệm học tập Unix ".
Trong ví dụ của bạn, bạn sử dụng hai công cụ và xem ngôn ngữ là tương tự nhau. Nó chỉ không rõ ràng khi sử dụng chính xác những gì. Tất nhiên bạn có thể mong đợi có một cấu trúc rõ ràng , vì vậy bạn yêu cầu chúng tôi giải thích điều đó.
Trường hợp với không gian xung quanh =
là duy nhất và ví dụ - có rất nhiều trường hợp tương tự nhưng khá bot .
Phải có một logic trong đó, phải không?!
Các quy tắc làm thế nào để viết mã cho một số công cụ , shell, cơ sở dữ liệu, vv chỉ phụ thuộc vào những gì công cụ cụ thể này yêu cầu .
Điều đó có nghĩa là các công cụ hoàn toàn độc lập , về mặt kỹ thuật. Các mối quan hệ logic mà tôi nghĩ rằng bạn mong đợi chỉ đơn giản là không tồn tại .
Sự giống nhau rõ ràng của các ngôn ngữ bạn đang thấy không phải là một phần của việc thực hiện chương trình . Sự giống nhau tồn tại bởi vì các nhà phát triển đã đồng ý cách thực hiện khi họ viết nó xuống cho một chương trình cụ thể. Nhưng con người chỉ có thể đồng ý một phần .
Các mối quan hệ bạn đang nhìn thấy là một văn hóa điều - đó là không phải là một phần của thực hiện , cũng không phải trong định nghĩa của ngôn ngữ .
Vì vậy, bây giờ chúng ta đã xử lý lý thuyết, phải làm gì trong thực tế?
Một bước tiến lớn là chấp nhận rằng tính nhất quán mà bạn mong đợi không tồn tại - dễ dàng hơn nhiều khi hiểu lý do - tôi hy vọng phần lý thuyết sẽ giúp ích cho việc này.
Nếu bạn có hai công cụ, không sử dụng cùng một ngôn ngữ cấu hình (ví dụ: cả hai bash script), việc biết các chi tiết về cú pháp của một công cụ không giúp ích nhiều cho việc hiểu ngôn ngữ kia;
Vì vậy, thực sự, bạn sẽ phải tìm kiếm chi tiết một cách độc lập . Hãy chắc chắn rằng bạn biết nơi bạn tìm thấy các tài liệu tham khảo cho mỗi.
Về mặt tích cực, có một số tính nhất quán mà bạn không mong đợi: trong ngữ cảnh của một công cụ duy nhất (hoặc các công cụ khác nhau sử dụng cùng một ngôn ngữ), bạn có thể khá chắc chắn rằng cú pháp là nhất quán.
Trong mysql
ví dụ của bạn , điều đó có nghĩa là bạn có thể giả sử rằng tất cả các dòng có cùng quy tắc. Vì vậy, nguyên tắc là "không gian trước và sau =
là không phù hợp ".
Có rất nhiều sự khác biệt trong cách cứng nó là để tìm hiểu hoặc sử dụng ngôn ngữ Configuration hoặc kịch bản của một công cụ.
Nó có thể là một số như " Liệt kê các giá trị foo trong cmd-foo.conf, một giá trị trên mỗi dòng."
Nó có thể là một ngôn ngữ kịch bản đầy đủ cũng được sử dụng ở nơi khác. Sau đó, bạn có một công cụ mạnh mẽ để viết cấu hình - và trong một số trường hợp thật tuyệt, trong những trường hợp khác, bạn sẽ thực sự cần điều đó.
Các công cụ phức tạp , hoặc các gia đình lớn của các công cụ liên quan đôi khi chỉ sử dụng cú pháp tệp cấu hình đặc biệt rất phức tạp - (một số ví dụ nổi tiếng là sendmail
và vim
).
Những người khác sử dụng một kịch bản chungngôn ngữ làm cơ sở và mở rộng ngôn ngữ đó để hỗ trợ các nhu cầu đặc biệt , đôi khi theo những cách phức tạp, như ngôn ngữ cho phép. Đó sẽ là một trường hợp rất cụ thể của ngôn ngữ dành riêng cho tên miền ( DSL ) .