Thực hiện chức năng đọc mà không cần keybinding?


26

Tôi vừa đọc trang người đọc và phát hiện ra một loạt các lệnh tuyệt vời mà tôi không biết. Tuy nhiên, một số không có ràng buộc khóa mặc định. Có cách nào để thực thi các lệnh không liên kết từ shell không?

Tôi không hỏi làm thế nào để liên kết lệnh trong ~ / .inputrc, mà thay vào đó là cách thực thi lệnh dưới dạng "một lần" từ trình bao hoặc trong tập lệnh bash.

Ví dụ: lệnh "dump-biến". Có một số lệnh tôi có thể cung cấp "biến-biến" thành một đối số để thực hiện nó không?


2
Tôi không nghĩ là có, từ một cái nhìn nhanh vào hướng dẫn và nguồn đọc.
Jim Paris

Câu trả lời:


10

Tôi tin rằng những gì bạn đang tìm kiếm là bindchính lệnh. Theo man builtinthông tin chạy bind <readline-command>cho phép bạn chạy một lần, tuy nhiên, tôi không thể làm cho nó hoạt động như hướng dẫn nói rằng nó nên ... nó giữ cho các phím không hoạt động với tôi; số dặm của bạn có thể thay đổi. Tôi đã tìm thấy các lệnh sau đây có thể được sử dụng cho bạn.

bind -p # Equivalent to dump-functions [machine readable]
bind -P # Equivalent to dump-functions [human readable]

bind -s # Equivalent to dump-macros    [machine readable]
bind -S # Equivalent to dump-macros    [human readable]

bind -v # Equivalent to dump-variables [machine readable]
bind -V # Equivalent to dump-variables [human readable]

Chỉnh sửa Lưu ý Tôi muốn chỉ ra mức độ khó chịu của nó là nó không hoạt động như hướng dẫn sử dụng nói vì nếu bạn nhập bindvà sau đó nhấn tab để tự động hoàn thành, nó sẽ hiển thị tất cả các lệnh.


3
Gọi lại trực tiếp các chức năng đọc: Tôi không nghĩ hướng dẫn thực sự tuyên bố rằng bạn có thể làm điều đó; trong trường hợp bạn đang đề cập đến hình thức cú pháp bind readline-command: Tôi nghi ngờ commandcó chữ viết tắt của dòng định nghĩa (ánh xạ), không phải là hàm đọc có thể gọi trực tiếp . Tự động hoàn thành là một cấu hình rõ ràng được định cấu hình rõ ràng trên một số nền tảng (ví dụ: Fedora 20), nhưng không phải trên nhiều nền tảng khác ; sự hiện diện của nó KHÔNG ngụ ý rằng bạn có thể gọi các hàm readline trực tiếp - đó là một thông số hoàn thành lệnh khá "ngu ngốc": việc hoàn thành hoạt động trên bất kỳ đối số nào được cung cấp cho bind.
mkuity0

1
+1 cho các lệnh liệt kê các hàm / macro / biến có hiệu lực; nó đáng để thêm -Xcho các lệnh shell (được xác định thông qua -x).
mkuity0
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.