Khi tôi tab tab
_
ở thiết bị đầu cuối, Bash gợi ý 206 tính tích cực. Tôi đã cố gắng để chạy một trong số họ _git_rm
nhưng không có gì xảy ra, họ là gì?
Đây là một ảnh chụp màn hình:
Khi tôi tab tab
_
ở thiết bị đầu cuối, Bash gợi ý 206 tính tích cực. Tôi đã cố gắng để chạy một trong số họ _git_rm
nhưng không có gì xảy ra, họ là gì?
Đây là một ảnh chụp màn hình:
Câu trả lời:
Các hàm có tên bắt đầu bằng dấu gạch dưới là một phần của công cụ hoàn thành có thể lập trình. Bash tuân theo quy ước của zsh ở đây, trong đó hàm tạo ra các phần hoàn thành somecommand
được gọi _somecommand
và nếu hàm đó yêu cầu các hàm phụ trợ, chúng được gọi _somecommand_stuff
.
Các hàm hoàn thành này thường không có gì hữu ích hoặc gây ra lỗi nếu bạn gọi chúng theo cách thủ công: chúng dự định được gọi từ công cụ hoàn thành.
Điều này tuân theo một thực tiễn khá phổ biến trong các ngôn ngữ lập trình khác nhau để sử dụng dấu gạch dưới hàng đầu để chỉ ra rằng một hàm hoặc biến theo cách nào đó nằm trong thư viện và không dành cho người dùng cuối (hoặc lập trình viên cuối).
type _git_rm
có lẽ sẽ cho bạn biết rằng đó là một chức năng.grep -R '_git_rm' /etc/bash_completion.d/
có lẽ sẽ tìm thấy nó Những chức năng này thường là những chức năng cung cấp các danh sách hoàn thành khác nhau đểbash
hoàn thành.