J'ai trouvé cette commande utile bind -x '"\C-r"':reset
pour effacer le terminal mais je voulais faire un simple script bash:
#!/bin/bash
bind -x '"\C-r"':reset
production:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
Quelqu'un pourrait-il expliquer:
- Comment puis-je réparer cela?
- Que veut
warning: line editing not enabled
dire?
echo -e '\0033\0143'
grâce à superuser.com/questions/122911/bash-reset-and-clear-commands/… , mais je voudrais quand même savoir ce que cette erreur signifie et comment y remédier. Merci beaucoup.set -o emacs
ouset -o vi
dans votre script (avant lebind
, bien sûr).Réponses:
Vous devez vous procurer ce script. Faites
. ./bind
ousource ./bind
pour activer cette liaison de touches dans la session en cours.L'exécutant normalement, il n'a pas de terminal, il vous donne donc ce message d'erreur. De plus, si cela devait fonctionner, il ne serait actif que pendant la durée du script.
Si vous souhaitez que cette liaison de touches soit persistante, ajoutez cette commande à votre
~/.bashrc
.la source
source
.source
ou dot (.
), ajoutez une fonction à votre~/.bashrc
:rbind () { bind -x '"\C-r"':reset; }
alors vous pouvez entrerrbind
par lui-même comme une commande et la liaison sera activée.J'avais un message similaire mais le mien provenait d'un script exécuté en dehors d'un shell interactif (de connexion); c'était un script shell exécuté via un script CGI. Mon message était:
et bien qu'il ne soit pas réellement sur la ligne 4, le seul
bind
dans ce fichier était:ce qui bien sûr n'a de sens que si l'édition de ligne est activée, c'est-à-dire s'il s'agit d'un shell interactif.
la source