Znalazłem to pomocne polecenie, bind -x '"\C-r"':reset
aby wyczyścić terminal, ale chciałem stworzyć prosty skrypt bash:
#!/bin/bash
bind -x '"\C-r"':reset
wynik:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
Czy ktoś mógłby wyjaśnić:
- Jak mogę to naprawić?
- Co
warning: line editing not enabled
znaczy
echo -e '\0033\0143'
dzięki superuser.com/questions/122911/bash-reset-and-clear-commands/... , ale nadal chciałbym wiedzieć, co ten błąd oznacza i jak to naprawić. Wielkie dzięki.set -o emacs
lubset -o vi
do skryptu (zanimbind
, oczywiście).Odpowiedzi:
Musisz zdobyć ten skrypt. Wykonaj
. ./bind
lub,source ./bind
aby powiązanie klucza było aktywne w bieżącej sesji.Działając normalnie, nie ma terminala, więc wyświetla ten komunikat o błędzie. Ponadto, jeśli miałby działać, byłby aktywny tylko na czas trwania skryptu.
Jeśli chcesz, aby przypisanie klawiszy było trwałe, dodaj to polecenie do swojego
~/.bashrc
.źródło
source
.source
lub kropka (.
), dodać funkcję do listy~/.bashrc
:rbind () { bind -x '"\C-r"':reset; }
wtedy można wprowadzićrbind
przez jako polecenie, a wiązanie zostanie aktywowane.Miałem podobną wiadomość, ale moja pochodziła ze skryptu uruchamianego poza interaktywną powłoką (login); był to skrypt powłoki uruchamiany za pomocą skryptu CGI. Moja wiadomość to:
i chociaż nie było tak naprawdę w linii 4, jedynym
bind
w tym pliku było:co oczywiście ma sens tylko wtedy, gdy włączona jest edycja linii, tj. jeśli jest to interaktywna powłoka.
źródło