Ich fand diesen hilfreichen Befehl bind -x '"\C-r"':reset
zum Löschen des Terminals, wollte aber ein einfaches Bash-Skript erstellen:
#!/bin/bash
bind -x '"\C-r"':reset
Ausgabe:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
Könnte jemand bitte erklären:
- Wie kann ich das beheben?
- Was
warning: line editing not enabled
bedeutet
echo -e '\0033\0143'
von " superuser.com/questions/122911/bash-reset-and-clear-commands/…" behoben , möchte jedoch weiterhin wissen, was dieser Fehler bedeutet und wie dies behoben werden kann . Danke vielmals.set -o emacs
oderset -o vi
in Ihr Skript (bind
natürlich vor dem).Antworten:
Sie müssen dieses Skript als Quelle angeben. Führen Sie
. ./bind
oder aussource ./bind
, um diese Schlüsselbindung in der aktuellen Sitzung zu aktivieren.Wenn Sie es normal ausführen, hat es kein Terminal, sodass Ihnen diese Fehlermeldung angezeigt wird. Wenn es funktionieren würde, wäre es nur für die Dauer des Skripts aktiv.
Wenn Sie möchten, dass die Tastenkombination dauerhaft bleibt, fügen Sie diesen Befehl Ihrem Befehl hinzu
~/.bashrc
.quelle
source
.source
oder dot (.
) verwenden müssen, fügen Sie Ihrer Funktion Folgendes hinzu~/.bashrc
:rbind () { bind -x '"\C-r"':reset; }
Sie können eingebenrbind
durch selbst als Befehl und die Bindung wird aktiviert.Ich hatte eine ähnliche Nachricht, aber meine stammte von einem Skript, das außerhalb einer interaktiven (Login-) Shell ausgeführt wurde. Es war ein Shell-Skript, das über ein CGI-Skript ausgeführt wurde. Meine Nachricht war:
und obwohl es eigentlich nicht in Zeile 4 war, war das einzige
bind
in dieser Datei:Das macht natürlich nur Sinn, wenn die Zeilenbearbeitung aktiviert ist, dh wenn es sich um eine interaktive Shell handelt.
quelle