Quy ước / tiêu chuẩn về sử dụng dấu ngoặc nhọn xung quanh các tùy chọn


9

Trang man cho tar trong phần ArchNO SYNOPSIS bắt đầu bằng:

tar {A|c|d|r|t|u|x}[GnSkUWOmpsMBiajJzZhPlRvwo] [ARG...]

Tôi hoàn toàn hiểu rằng trong tình huống này, điều đó có nghĩa là chính xác một trong các tùy chọn trong dấu ngoặc nhọn phải được đưa ra bởi vì nó nói quá sâu trong trang người đàn ông. Có một số loại tiêu chuẩn hoặc quy ước về việc sử dụng {} xung quanh danh sách các tùy chọn loại trừ lẫn nhau không?

Tất cả những gì tôi có thể tìm thấy là một hướng dẫn nhóm của Người dùngman từ năm 1998 với nội dung:

Một số tùy chọn sẽ có một danh sách hạn chế các lựa chọn. Một danh sách các lựa chọn sẽ được phân tách bằng dấu phẩy và đặt giữa các dấu ngoặc nhọn.

{sự lựa chọn1, sự lựa chọn2} {có, không}

Có vẻ như mọi quy ước (như quy ước này từ Nhóm mở ) hoặc trang man chỉ mô tả dấu ngoặc vuông ([) hoặc đường dọc (|).


1
Thông thường tôi nghĩ <>là bắt buộc, nhưng tôi cho rằng đó là dành riêng cho các đối số trái ngược với các tùy chọn. Bộ đếm: Phiên bản Ubuntu của trang man GNU ( manpages.ubfox.com/manpages/trusty/en/man1/tar.1.html , đối với một) không sử dụng biểu mẫu này, linux.die.net/man/ cũng không 1 / tar hoặc Debian . Tôi nghĩ rằng bạn có thể đang xem trang chủ của BSD tar, vì vậy nếu một quy ước tồn tại, đó có thể là một điều BSD.
muru

ngược dòng cho arch man-page là man7.org , trang tar hoàn toàn giống man7.org/linux/man-pages/man1/tar.1.html .
umbasa 3/03/2015

2
Tôi luôn nghĩ rằng cú pháp dòng lệnh xuất phát từ ENBF , nhưng {} trong ENBF có nghĩa hoàn toàn ngược lại (lặp lại đối số thay vì một lựa chọn có thể như trong tình huống tar). Tôi đã cố gắng google cú pháp {} với aim to windows và có vẻ như {} rất phổ biến trên windows, nó thậm chí còn có một mô tả về technet . Thở dài, có lẽ tôi đang cố gắng quá nhiều để tìm ra sự thật.
umbasa 3/03/2015

Câu trả lời:


4

Đây là một câu hỏi tuyệt vời (và vẫn mở 3 năm sau). Tôi nghĩ rằng câu trả lời hiện đã được trả lời chính thức trong tài liệu Google này :

  • Các mặt hàng bắt buộc: không có backets
  • Các mục loại trừ lẫn nhau tùy chọn: dấu ngoặc vuông, đường phân cách
  • Các mặt hàng loại trừ lẫn nhau bắt buộc: Niềng răng xoăn, đường ống được phân định

1

Có một số loại tiêu chuẩn hoặc quy ước về việc sử dụng {} xung quanh danh sách các tùy chọn loại trừ lẫn nhau không?

Tôi đã nghiên cứu ý nghĩa của ý nghĩa của các tùy chọn được chỉ định trong dấu ngoặc nhọn ({}) so với các tùy chọn được chỉ định trong ngoặc vuông ([]) khi tôi gặp câu hỏi của bạn. Đó là nguồn thông tin duy nhất mà tôi thấy hữu ích đối với những gì tôi đang tìm hiểu, cụ thể là tại sao các tùy chọn được nêu trong niềng răng xoăn.

Như bạn đã viết:

Tôi hoàn toàn hiểu rằng trong tình huống này, điều đó có nghĩa là chính xác một trong số họ phải được đưa ra ...

Đọc trang man cho netstat tôi đã hiểu rằng các tùy chọn là những tùy chọn có sẵn để sử dụng với một lệnh phải được sử dụng / nêu trước khi sử dụng bất kỳ tùy chọn nào khác có thể được liệt kê bằng lệnh VÀ chỉ chính xác một trong các tùy chọn được liệt kê cách nhau bởi thanh dọc có thể được sử dụng.

Một ví dụ về những điều trên có thể được tìm thấy trong trang man cho lệnh netstat:

netstat {--route | -r} [address_family_options] [--extend | -e [- extend | -e]] [--verbose | -v] [--numeric | -n] [--numeric-hosts ] [- cổng số] [- cổng số] [- liên tục | -c] [delay]

Nguồn: netstat (8) | Trang người đàn ông Linux

Về bản chất, người ta có thể sử dụng chính xác một trong số --route hoặc -r (chúng có nghĩa tương tự) nhưng tùy chọn phải đi trước các tùy chọn được liệt kê khác.

Tôi chỉ dành thời gian để trả lời câu hỏi của bạn vì câu hỏi dường như vẫn mở nhưng có vẻ như tôi đã trả lời câu hỏi của bạn :)

Một quy ước chỉ đơn thuần là một thực tiễn được thiết lập rộng rãi. Cho dù được tuyên bố rõ ràng hay không, thực tế là bạn tìm thấy tài liệu người đàn ông thường xuyên ở định dạng này cho thấy rằng quy ước (giả sử tôi đã nêu chính xác ở trên) được thiết lập chắc chắn.

Có "tiêu chuẩn" không? Đối với tôi điều đó phụ thuộc vào định nghĩa bạn muốn áp dụng cho "tiêu chuẩn". Đối với tôi có rất ít, không, sự khác biệt giữa ý nghĩa của quy ước từ và tiêu chuẩn, theo nghĩa là chúng ta đang sử dụng thuật ngữ ở đây. Theo nghĩa này, tôi coi hai từ này có nghĩa là một cái gì đó dọc theo dòng chữ "một cái gì đó được hai bên đồng ý và sử dụng và chấp nhận như là tiêu chuẩn".

Cảm ơn bạn đã dành thời gian giúp tôi hiểu quy ước / tiêu chuẩn này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.