Я нашел эту полезную команду bind -x '"\C-r"':reset
для очистки терминала, но я хотел сделать простой скрипт bash:
#!/bin/bash
bind -x '"\C-r"':reset
выход:
alfred@alfred-laptop:~/bash$ ./bind
./bind: line 2: bind: warning: line editing not enabled
Может ли кто-нибудь объяснить, пожалуйста:
- Как я могу это исправить?
- Что
warning: line editing not enabled
значит?
echo -e '\0033\0143'
благодаря superuser.com/questions/122911/bash-reset-and-clear-commands/... , но я все еще хотел бы знать , что это означает , что ошибки и как это исправить. Большое спасибо.set -o emacs
илиset -o vi
в ваш скрипт (передbind
, конечно же).Ответы:
Вам нужно найти этот скрипт. Сделайте
. ./bind
илиsource ./bind
чтобы активировать привязку клавиш в текущем сеансе.При нормальном запуске он не имеет терминала, поэтому выдает это сообщение об ошибке. Кроме того, если бы он работал, он был бы активен только на время действия сценария.
Если вы хотите, чтобы эта привязка клавиш была постоянной, добавьте эту команду к себе
~/.bashrc
.источник
source
.source
или точки (.
), добавьте функцию в свой~/.bashrc
:rbind () { bind -x '"\C-r"':reset; }
тогда вы можете войти сrbind
помощью сама как команда и привязка будет активирована.У меня было похожее сообщение, но мое было из сценария, запускаемого вне интерактивной оболочки (логин); это был сценарий оболочки, запускаемый через сценарий CGI. Мое сообщение было:
и хотя это не было на самом деле в строке 4, единственным
bind
в этом файле было:что, конечно, имеет смысл, только если редактирование строки включено, т.е. если это интерактивная оболочка.
источник