TextMode: как убрать "мусор" от служебных клавиш
TextMode: как убрать "мусор" от служебных клавиш
Юзеры работают в текстовом режиме и жмут Delete, стрелки и другие служебные клавиши. Появляется "мусор" в виде квадратных скобок и т.д... Клавишей BackSpace это можно убрать, но все равно некрасиво. Где, что и как настроить, чтобы "мусор" не появлялся?
(Mandrake 10.0, Mandriva 2005, 2006, но, думаю, это не критично, и есть общий способ для всех Linux'ов)
(Mandrake 10.0, Mandriva 2005, 2006, но, думаю, это не критично, и есть общий способ для всех Linux'ов)
Вдогонку. Попробовала возиться с stty. Результаты следующие.
stty -F -echo
отключает "мусор" от служебных клавиш, а также отображение всех остальных. Юзер жмет "abc123...", а в строке пусто.
stty -F -echoctl
отключает "мусор" от служебных клавиш, при этом "стрелки" и "Delete" действуют так, как им и положено. Юзер забирается стрелками в середину экрана, где висит недоступный ему ранее текст, и Delet'ом организует в нем дырки от бублика
Наверное, лучше оставить все как было...
stty -F -echo
отключает "мусор" от служебных клавиш, а также отображение всех остальных. Юзер жмет "abc123...", а в строке пусто.
stty -F -echoctl
отключает "мусор" от служебных клавиш, при этом "стрелки" и "Delete" действуют так, как им и положено. Юзер забирается стрелками в середину экрана, где висит недоступный ему ранее текст, и Delet'ом организует в нем дырки от бублика
Наверное, лучше оставить все как было...
Подсмотрела у Тейнсли ("Программирование в Linux Shell") простой скрипт для организации пользовательского меню вроде такого:
clear
echo "abc: запустить такую-то задачу"
echo "efg: сделать отчет"
echo "<мнемоника>: <описание действия>"
[...]
echo -n " Наберите вариант [abc, efg, ...] и нажмите Enter >"
read variant
Конечно, некорректные значения (в том числе и с мусором) игнорируются. Конечно, Backspace (до нажатия Enter) помогает. Но некузяво как-то.
Но курсор хотя бы не уходит из нужной строки.
А с -echoctl, как уже говорилось, комбинируя стрелку вверх и Delete, пользователь получает возможность прогрызать ходы в самом меню.
clear
echo "abc: запустить такую-то задачу"
echo "efg: сделать отчет"
echo "<мнемоника>: <описание действия>"
[...]
echo -n " Наберите вариант [abc, efg, ...] и нажмите Enter >"
read variant
Конечно, некорректные значения (в том числе и с мусором) игнорируются. Конечно, Backspace (до нажатия Enter) помогает. Но некузяво как-то.
Но курсор хотя бы не уходит из нужной строки.
А с -echoctl, как уже говорилось, комбинируя стрелку вверх и Delete, пользователь получает возможность прогрызать ходы в самом меню.