EDIT: Người ta đã chỉ ra rằng phong cách này là một GNU-ism và các Unix không dựa trên GNU có xu hướng sử dụng cú pháp một dấu gạch ngang (đặc biệt là các biến thể OS X và BSD).
Mặc dù có trạng thái GNU-ism, nhiều chương trình kiểu Unix mới viết sử dụng kiểu này:
--long-option
cho tên tùy chọn dài,
-s
cho các tùy chọn ngắn (một ký tự),
-abc
cho nhiều tùy chọn ngắn mà không có đối số (một ký tự cho mỗi tùy chọn).
- Tùy chọn với các đối số:
--long arg
hoặc --long=arg
cho các tùy chọn dài,
-s arg
, -sarg
Hoặc (tùy chọn) -s=arg
cho các tùy chọn ngắn. Điều này có thể được kết hợp với các tùy chọn ngắn khác, miễn là chỉ có cái cuối cùng có một đối số.
- Tùy chọn "ngữ nghĩa" tương tự có thể có một số bí danh, phổ biến nhất là một cái ngắn (nhanh hơn để gõ) và một cái dài (dễ nhớ hơn).
Bất kỳ ai đã sử dụng shell Linux trong bất kỳ khoảng thời gian nào cũng nên làm quen với kiểu 1 này , vì vậy nó có nguyên tắc ít gây bất ngờ nhất về phía nó. Cho phép nhóm nhiều tùy chọn ngắn mà không mơ hồ với các tùy chọn dài cũng tốt.
1 Ví dụ, một số chương trình sử dụng phong cách này (trên máy tính Linux của tôi): ls
, grep
, man
, sed
, bash
, vv ( EDIT: đây là những hình như GNU-ISMS tuy nhiên, BSD và OS X máy không sử dụng phong cách này)
Có một số thư viện có thể đảm nhiệm việc phân tích cú pháp này cho bạn (nổi tiếng nhất là triển khai getopt của GNU ), chỉ cần bạn chỉ định các tùy chọn dài và ngắn tồn tại, cho dù chúng có tranh luận hay không và phải làm gì khi tùy chọn được tìm thấy. (Và tất nhiên, phải làm gì cho các đối số vị trí, tức là những đối số không bắt đầu -
và không phải là đối số cho các tùy chọn trước đó)
find
là một chương trình rất cũ (hoặc có thể nhiều khả năng: một phiên bản viết lại của một chương trình rất cũ) không thể dễ dàng thay đổi để sử dụng cú pháp dòng lệnh mới. Quá nhiều tập lệnh sẽ bị hỏng và quá nhiều người dùng đã sử dụng cú pháp cũ sẽ phàn nàn. javac
có khả năng bị ảnh hưởng bởi gcc
và bạn bè, cũng theo một cú pháp cũ vì lý do lịch sử.