`--` được gọi là gì?


23

Gần đây tôi đã biết --rằng đó là dấu gạch nối kép được sử dụng để nói với một lệnh rằng danh sách tùy chọn đã kết thúc và những gì sau đây không nên được coi là một tùy chọn. Vì thế,

grep --  'search_word' *

sẽ tìm kiếm cho trước search_word. Nhưng bạn có thể thấy một hành vi không mong muốn nếu bạn xóa --và nếu có một tệp duy nhất bắt đầu bằng -, nó sẽ bật tùy chọn khớp với ký tự trong tên tệp .

Cái này --gọi là gì? Có bất kỳ thuật ngữ kỹ thuật này?


3
Xem cuộc tranh luận về lý do tại sao những người đứng đầu unix nói rằng trừ đi? sau đó nhân đôi nó
manatwork

@manatwork Không, vuông nó! Chúng ta có nên nói về minus dash trừ hay dash dash trừ trừ?
Gilles 'SO- ngừng trở nên xấu xa'

Tôi chỉ phát âm nó "-".
dubiousjim

Tôi gặp sự đều đặn cd --cd -hiện tượng. trong khi cd --có nghĩa là về cơ bản chỉ cdvà do đó thay đổi thành của bạn $HOME, cd -có nghĩa là đặt bản thân của bạn vào thư mục trước đó. Điều này trở nên tiện dụng khi bạn muốn cd ..nhưng như với cách bố trí bàn phím tiếng Đức, tôi thường kết hợp nó với cd --. cd -sau đó sẽ đưa bạn trở lại. : D
toán

Câu trả lời:


15

Công cụ --này đang làm việc cho các công cụ sử dụng getopt(3)để xử lý các đối số dòng lệnh và nhiều API phân tích các tùy chọn kiểu POSIX.

Từ trang hướng dẫn của getopt(3):

Việc giải thích các tùy chọn trong danh sách đối số có thể bị hủy bởi tùy chọn `- '(dấu gạch ngang kép) khiến getopt () báo hiệu kết thúc xử lý đối số và trả về -1.

Sau đó tôi sẽ nói nó được gọi là dấu gạch ngang kép


Nhưng tôi cá là có một số thuật ngữ ngôn ngữ cho điều đó.
Cướp

3
getopt không phải là API duy nhất hỗ trợ "-". Hầu hết các API phân tích các tùy chọn kiểu POSIX trong hầu hết các ngôn ngữ đều hỗ trợ nó. Tất cả các tiện ích POSIX nhưng echo[hỗ trợ nó
Stéphane Chazelas

@StephaneChazelas Cảm ơn tôi đã chỉnh sửa câu trả lời
Matteo

5

Hai tên duy nhất mà tôi hướng đến trong thực tế là "dấu gạch ngang kép" để đề cập đến nó về mặt thẩm mỹ và "kết thúc các tùy chọn" để đề cập đến nó một cách chức năng .


tôi cũng đã thấy nó được gọi là 'tùy chọn cuối cùng'.
Tim Kennedy
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.