Właśnie czytałem stronę podręcznika readline i odkryłem mnóstwo świetnych poleceń, o których nie wiedziałem. Jednak kilka nie ma domyślnych przypisań klawiszy. Czy istnieje sposób na wykonanie niezwiązanych poleceń z powłoki?
Nie pytam, jak powiązać polecenie w ~ / .inputrc, ale jak wykonać je jako „jednorazowo” z powłoki lub w skrypcie bash.
Na przykład polecenie „zmienne zrzutu”. Czy jest jakieś polecenie, do którego można podać „zmienne zrzutu” jako argument do wykonania?
Odpowiedzi:
Wierzę, że to, czego szukasz, to
bind
samo polecenie. Wedługman builtin
informacji uruchamianiebind <readline-command>
pozwala na uruchamianie jednorazowe, jednak nie udało mi się sprawić, by działało tak, jak mówi instrukcja, że powinno ... sprawiało, że klucze nie działały dla mnie; twój przebieg może się różnić. Znalazłem następujące polecenia, które mogą ci się przydać.Edytuj notatkę Chciałbym zwrócić uwagę na to, jak denerwujące jest to, że nie działa tak, jak mówi instrukcja, ponieważ powinno, ponieważ jeśli wpiszesz,
bind
a następnie naciśniesz tab, aby wykonać automatyczne uzupełnianie, wyświetli wszystkie polecenia.źródło
bind readline-command
: Podejrzewam, żecommand
istnieje linia definicji (odwzorowania), a nie bezpośrednio wywoływana funkcja readline . Autouzupełnianie jest bardzo wyraźnie skonfigurowane na niektórych platformach (np. Fedora 20), ale nie na wielu innych ; jego obecność NIE oznacza, że można bezpośrednio wywoływać funkcje readline - jest to dość „głupie” specyfikowanie uzupełniania poleceń: uzupełnienie działa na każdym dostarczonym argumenciebind
.-X
do poleceń powłoki (zdefiniowanych przez-x
).