Tại sao `.` được chọn để đại diện cho lệnh dot?


8

Tôi tự hỏi sau khi thấy câu hỏi này tại sao .biểu tượng được chọn để đại diện cho lệnh dot ?

Tôi không thể tìm thấy nhiều về nguồn gốc của nó hoặc ai đã tạo ra nó và tò mò về lý do tại sao một điểm dừng hoàn toàn được chọn để đại diện cho lệnh này.


2
Bạn đã thử hỏi Stephen Bourne chưa?
schily

1
@schily: Anh ấy không có mặt để trò chuyện
jesse_b

8
Bởi vì sẽ thật ngớ ngẩn khi gọi "%" là "lệnh dot".
Ignacio Vazquez-Abrams

1
@slm: Đúng, tại sao được .sử dụng để đại diện cho lệnh dot (nguồn)? Có liên quan đến .việc là thư mục hiện tại?
jesse_b

1
@Rob: Không, không phải vậy.
jesse_b

Câu trả lời:


7

Việc đề cập sớm nhất về lệnh dot mà tôi có thể tìm thấy nằm trong hướng dẫn sử dụng cho shvỏ của Stephen Bourne trong Unix Release 7 (nó có thể cũ hơn, nhưng không có mặt như một trong những lệnh tích hợp shtrong Phiên bản 6 ).

. file  Read and execute commands from file and return.  The search path
        $PATH is used to find the directory containing file.

Dấu chấm, về mặt khá chung chung, dường như đã được liên kết với "ở đây" hoặc "hiện tại". Thư mục .là thư mục hiện tại.địa chỉ trong adbtrình gỡ lỗi từ cùng một bản phát hành Unix có một .địa chỉ là địa chỉ hiện tại . Tương tự, nhập một .dòng mới theo sau trong edtrình chỉnh sửa sẽ hiển thị lại dòng hiện tại của bộ đệm chỉnh sửa ( .giải quyết dòng hiện tại). Dấu chấm cũng có nghĩa là nút hiện tại trong các ngôn ngữ truy vấn có cấu trúc nhất định cho XML, JSON, YAML, v.v. (mặc dù đây là những phát minh sau này).

Do đó, theo tôi, không quá xa để suy đoán rằng .lệnh trong shell cũng có nghĩa là "ở đây" hoặc "hiện tại". Cụ thể, "chạy tập lệnh này trong môi trường hiện tại ."

Dấu chấm cũng khá nhanh chóng và dễ dàng để gõ, và có một lệnh ngắn để thực hiện một nhiệm vụ chung (cho dù đó là trong ed, adbhoặc trong vỏ) có thể là một lý do tại sao một tên khác còn không được sử dụng.


Lưu ý rằng tôi không có một phiên bản hoạt động của shtừ Release 7 đến thứ thử nghiệm trong, và rằng tôi không thể tìm thấy thực tế thực hiện của. nguyên vỏ Bourne từ đó phát hành trong kho Git nêu trên, vì vậy tôi không thể nói chắc chắn rằng nó thực sự đã làm chính xác những gì nó làm ngày hôm nay. Nhưng nó có khả năng là nó đã làm.


+1. Cảm ơn câu trả lời dài này. Nhân tiện, có sự khác biệt nào giữa dấu chấm và nguồn khi được sử dụng để chạy các lệnh từ một tệp: . scriptfileso với source scriptfiletrong bashkhông? Nói cách khác, chúng có phải là hai tên của cùng một lệnh tích hợp không?
sudodus

@sudodus Họ là tương đương. Các sourcelệnh có một mặc dù lịch sử khác nhau, như nó được thừa hưởng từ csh.
Kusalananda

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.