DM пользователь, выполняющий команду

Вы можете использовать read -n 1 для чтения одного символа, а затем использовать оператор case для выбора действия, которое необходимо предпринять на основе ключа.

При проблемах в том, что клавиши со стрелками выводят более одного символа и последовательность (и ее длина) изменяется от терминала к терминалу.

Например, на терминале, который я использую, стрелка вправо выдает ^[[C. Вы можете видеть, какую последовательность выходов выберете, нажав Ctrl-V вправо. То же самое можно сказать и о других клавишах управления курсором, таких как Page Up и End.

Вместо этого я рекомендовал бы использовать односимвольные клавиши, такие как < и >. Обработка их в вашем скрипте будет намного проще.

read -n 1 key

case "$key" in
    '<') go_left;;
    '>') go_right;;
esac
-6
задан dominic03 27 February 2019 в 14:29
поделиться

1 ответ

Другие вопросы по тегам:

Похожие вопросы: