Không - nghĩa là gì - đối số của một lệnh?


Câu trả lời:


18

Đó là một quy ước phổ biến để sử dụng -trong một đối số tên tệp có nghĩa là stdinhoặc stdout; tartuân theo quy ước tương tự. Từ trang người đàn ông:

   -f, --file [HOSTNAME:]F
          use archive file or device F (default "-", meaning stdin/stdout)

1
Đây chỉ là một quy ước; bạn cần đọc manpage cho lệnh cụ thể để xem nó -có ý nghĩa gì với nó. Stdin / stdout là ý nghĩa phổ biến nhất, nhưng có những cái khác. Chẳng hạn, với một số phiên bản của envnó có nghĩa là "bắt đầu với một môi trường trống rỗng".
cjm

0

Một quy ước khác là sử dụng '-' để chỉ sự kết thúc của các cờ và bắt đầu tên tệp. Hành vi đó được tích hợp sẵn trong getopt (3) trên RedHat 4, ít nhất. Tôi không thể tìm thấy trang man Red Hat sử dụng '-' để biểu thị phần cuối của các đối số, tất cả chúng dường như sử dụng '-' để làm điều đó. Trang người đàn ông awk có '-' trong bối cảnh đó, vì vậy có lẽ chỉ các lệnh Unix hoặc Solaris "gia truyền" cũ mới sử dụng '-' làm dấu phân cách - tên tệp.


3
--báo hiệu sự kết thúc của các tùy chọn, vì vậy mọi thứ xuất hiện sau đó là một toán hạng. -không phải là một lựa chọn, vì vậy nó và mọi thứ xuất hiện sau đó là một toán hạng. Đây là hành vi tiêu chuẩn . Đối với nhiều lệnh, chẳng hạn như tar, toán hạng -có nghĩa là đầu vào hoặc đầu ra tiêu chuẩn . Trên nhiều shell, set - -atương đương với set -- -a, và trên một số shell Bourne cũ set - -alà hình thức duy nhất được chấp nhận, nhưng đây là một ngoại lệ với tích sethợp sẵn.
Gilles 'SO- ngừng trở thành ác quỷ'

Các chương trình Solaris chủ yếu tuân theo quy ước tiêu chuẩn POSIX --để tách các tùy chọn khỏi các đối số.
alanc
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.