Encontré este comando útil bind -x '"\C-r"':reset
para borrar el terminal, pero quería hacer un script bash simple:
#!/bin/bash
bind -x '"\C-r"':reset
salida:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
¿Podría alguien explicarme:
- ¿Cómo puedo arreglar esto?
- Que
warning: line editing not enabled
significa
echo -e '\0033\0143'
gracias a superuser.com/questions/122911/bash-reset-and-clear-commands/… , pero todavía me gustaría saber qué significa este error y cómo solucionarlo. Muchas gracias.set -o emacs
oset -o vi
en su script (antes delbind
, por supuesto).Respuestas:
Necesitas obtener ese script. Haga
. ./bind
osource ./bind
para activar ese enlace de teclas en la sesión actual.Al ejecutarlo normalmente, no tiene una terminal, por lo que le da ese mensaje de error. Además, si funcionara, solo estaría activo mientras dure el script.
Si desea que la combinación de teclas sea persistente, agregue ese comando a su
~/.bashrc
.fuente
source
.source
o dot (.
), agregue una función a su~/.bashrc
:rbind () { bind -x '"\C-r"':reset; }
entonces puede ingresarrbind
por a sí mismo como un comando y el enlace se activará.Tenía un mensaje similar pero el mío era de un script que se ejecutaba fuera de un shell interactivo (inicio de sesión); era un script de shell que se ejecutaba a través de un script CGI. Mi mensaje fue:
y aunque en realidad no estaba en la línea 4, el único
bind
en ese archivo era:lo cual, por supuesto, solo tiene sentido si la edición de línea está habilitada, es decir, si se trata de un shell interactivo.
fuente