Intereting Posts
~ / .bash_profile выполняется для не-регистрационных оболочек Синтаксическая ошибка: неожиданный конец файла Руководство по загрузке BTX Как запустить часть скрипта со сниженными привилегиями? Выполнять команду при обнаружении взаимодействия пользователя (например: перемещение мыши, нажатие клавиши) Действие на другом дисплее при использовании SSH xinetd не может запустить lighttpd Как пропустить vim-сообщение «Нажмите Enter …» после запуска команд bash Какой дистрибутив будет использовать меньше ресурсов для ноутбука? Открытие нескольких вкладок в gnome-терминале, с их автоматическим паролем без ssh на серверы и сделать это с помощью псевдонима из моего файла bashrc Как искать все текстовые файлы в Ack? (с опцией –text теперь удаляется) захватить несколько строк после соответствующей целевой линии удаление первого и последнего символов каждой строки из командной строки Подключение к Интернету на подключенном к VPN сервере без Интернета Застрял в загрузочном логотипе из-за удаления всех драйверов nvidia в deepin 15.6. Что делать?

Как обрабатывать обратные стрелки, клавиши «Конец» и «Домой» в приглашении на чтение

Используя read и, набрав слово, за которым следует левая стрелка ,

  $ read word^[[D 

То же самое относится к клавишам Home и End, которые приводят к ^[[H и ^[[F соответственно.

Как я могу обрабатывать эти символы, так что я возвращаюсь назад с помощью стрелки влево , в начале и в конце того, что было написано с помощью Home и End соответственно.

библиотека readline обычно обрабатывает это, а inputrc сообщает, какие коды испускаются. Принуждение оболочки в интерактивный режим должно включать эти функции. curses – это библиотека, которая полностью поддерживает перемещение курсора (если вы хотите, чтобы текстовый редактор или что-то еще).

Но в конечном счете, вы должны помнить, что терминал является отправителем и получателем ввода / вывода. Итак … печать управляющей последовательности, которая перемещает курсор, должна перемещать курсор, чтобы вы всегда могли писать что-либо в любую позицию на экране. Терминалы несколько отличаются в контрольных последовательностях, на которые они реагируют, но проверьте это для справки.