20

Я нашел эту полезную команду 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

Может кто-нибудь объяснить, пожалуйста:

  1. Как я могу это исправить?
  2. Что означает warning: line editing not enabled ?

2 ответа2

10

Вам нужно найти этот скрипт. . ./bind или source ./bind чтобы активировать привязку этого ключа в текущем сеансе.

Работая нормально, он не имеет терминала, поэтому выдает это сообщение об ошибке. Кроме того, если бы он работал, он был бы активен только на время действия сценария.

Если вы хотите, чтобы эта привязка клавиш была постоянной, добавьте эту команду в ваш ~/.bashrc .

7

У меня было похожее сообщение, но мое было из сценария, запускаемого вне интерактивной оболочки (логин); это был скрипт оболочки, запускаемый через скрипт CGI. Мое сообщение было:

/home/richard/.bash_profile: line 4: bind: warning: line editing not enabled

и хотя это не было на самом деле в строке 4, единственное bind в этом файле было:

bind 'set completion-ignore-case on'

что, конечно, имеет смысл, только если редактирование строки включено, т.е. если это интерактивная оболочка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .