Không có tiêu chuẩn rộng rãi. Có một số tính nhất quán, ví dụ như trong các chương trình GNU, nhưng bạn cần kiểm tra từng tài liệu của chương trình.
Trích dẫn Wikipedia , nhấn mạnh của tôi:
Trong các hệ thống tương tự Unix, dấu trừ gạch ngang ASCII thường được sử dụng để chỉ định các tùy chọn. Các nhân vật thường được theo sau bởi một hoặc nhiều chữ cái . Một đối số là một dấu gạch nối đơn trừ đi mà không có bất kỳ chữ cái nào thường chỉ định rằng một chương trình sẽ xử lý dữ liệu đến từ đầu vào tiêu chuẩn hoặc gửi dữ liệu đến đầu ra tiêu chuẩn. Hai ký tự trừ dấu gạch nối (-) được sử dụng trên một số chương trình để chỉ định "tùy chọn dài" trong đó sử dụng tên tùy chọn mô tả nhiều hơn . Đây là một tính năng phổ biến của phần mềm GNU.
Thông thường, dấu gạch nối chỉ ra một đối số được xác định trước. Tôi nghĩ nó được sử dụng để phân biệt chúng với các tên tệp hoặc nhãn khác mà bạn có thể sử dụng làm đối số. Điều đó không phải luôn luôn như vậy, mặc dù (xem bên dưới).
Bạn sẽ thường tìm thấy cùng một đối số có sẵn cả tùy chọn ngắn và dài, ví dụ như trong ls .
Một số chương trình sử dụng một dấu gạch nối duy nhất cho các tùy chọn một ký tự và hai dấu gạch nối cho các tùy chọn đa ký tự, nhưng không phải tất cả (GNU find
xuất hiện trong tâm trí). Một số chương trình có dấu gạch nối tùy chọn hoặc bỏ qua chúng hoàn toàn ( tar
hoặc BSD ps
xuất hiện trong tâm trí).
Đôi khi các tùy chọn dài ( --foo
) yêu cầu đối số, trong khi tùy chọn ngắn ( -f
) không (hoặc ít nhất ngụ ý một đối số mặc định cụ thể).
Các tùy chọn ngắn (ví dụ cut -d ' '
) có thể có các đối số, trong khi các tùy chọn dài (ví dụ ls --all
) không nhất thiết phải có chúng.
Để thiết lập một hành vi cụ thể của một chương trình, đôi khi bạn cần sử dụng một tùy chọn ngắn, đối với những người khác, bạn cần sử dụng một tùy chọn dài và đối với một số bạn có một sự lựa chọn.
Trên một lưu ý liên quan, một số chương trình có thể xử lý không có khoảng trắng giữa một tùy chọn và đối số của nó , trong khi các chương trình khác thì không thể.
Như tôi đã viết lúc đầu, không có hành vi hay tiêu chuẩn chung. Thường thì bạn có thể theo dõi hành vi tương tự với cùng một thư viện được sử dụng để phân tích cú pháp đối số, nhưng có lẽ bạn không muốn đọc các nguồn để tìm hiểu điều này.
Bạn thực sự không thể suy ra cú pháp đối số của một chương trình từ một cái khác.
Nếu bạn cũng xem xét Windows, nó thậm chí còn tệ hơn: Trong khi các dòng lệnh Windows thường sử dụng /f
(ít nhất là các ký tự đơn) cho các tùy chọn, với :
tư cách là dấu phân cách giữa các tùy chọn và giá trị của chúng (xem ví dụ ở đây ); các tiện ích đa nền tảng được phổ biến rộng rãi (như những tiện ích bạn đề cập) và mang theo cú pháp dấu gạch nối phổ biến hơn cho các đối số, với tất cả các mâu thuẫn được đề cập ở trên.
-i
so với--input
hoặc-n
--dry-run
.