Как принять ввод со стрелками влево / вправо / вверх / вниз в оболочке Linux?

Я написал приложение Java, у которого есть время (input.readLine ()), которое продолжает считывать ввод, пока пользователь не наберет quit команда. У меня есть сценарий .bat для запуска в Windows и .sh для запуска в Linux. Приложение отлично работает в обоих случаях.

В Windows, если вы наберете такую ​​команду, как «проверить электронную почту», и нажмете Enter, она выполнит эту команду. Затем в следующем приглашении (то есть: в следующий раз, когда приложение Java прочитает строку ввода) вы можете нажать стрелку вверх, и она отзовет вашу команду «проверить электронную почту». Вы можете нажать клавишу со стрелкой влево, чтобы переместить курсор влево и т. Д. Это все именно то, что я хочу.

Однако в Linux нажатие клавиши вверх вызывает появление ^ [[D. Клавиши со стрелками влево и вправо производят аналогичный вывод в формате ASCII, например ^ [[C.

Я слышал о stty и просматривал страницы руководства, но не могу понять, что мне нужно изменить в сценарии .sh с запуском моего Java заявление. Может ли кто-нибудь мне помочь?

6
задан Michael 7 January 2011 в 22:43
поделиться