Encontrei este comando útil bind -x '"\C-r"':reset
para limpar o terminal, mas queria criar um script bash simples:
#!/bin/bash
bind -x '"\C-r"':reset
saída:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
Alguém poderia explicar:
- Como posso consertar isso?
- O que
warning: line editing not enabled
significa isso ?
echo -e '\0033\0143'
graças a superuser.com/questions/122911/bash-reset-and-clear-commands/… , mas ainda gostaria de saber o que esse erro significa e como corrigi-lo. Muito Obrigado.set -o emacs
ouset -o vi
em seu script (antesbind
, é claro).Respostas:
Você precisa obter esse script. Faça
. ./bind
ousource ./bind
para ativar essa ligação de chave na sessão atual.Ao executá-lo normalmente, ele não possui um terminal e, portanto, fornece essa mensagem de erro. Além disso, se funcionasse, estaria ativo apenas pela duração do script.
Se você deseja que a combinação de teclas seja persistente, adicione esse comando ao seu
~/.bashrc
.fonte
source
.source
ou dot (.
), adicione uma função ao seu~/.bashrc
:rbind () { bind -x '"\C-r"':reset; }
então você pode digitarrbind
por como um comando e a ligação será ativada.Eu tinha uma mensagem semelhante, mas a minha era de um script sendo executado fora de um shell interativo (login); era um script de shell sendo executado por um script CGI. Minha mensagem foi:
e, embora não estivesse na linha 4, o único
bind
nesse arquivo era:o que, obviamente, só faz sentido se a edição de linha estiver ativada, ou seja, se for um shell interativo.
fonte