Escribí una aplicación Java que tiene un tiempo (input.readLine()) que continúa leyendo la entrada hasta que el usuario escriba un comando de abandono. Tengo un script .bat para iniciarlo en Windows y un .sh para iniciarlo en Linux. La aplicación funciona bien en ambos.¿Cómo acepto las entradas de flecha izquierda/derecha/arriba/abajo en un shell de Linux?
En Windows, si escribe un comando como "consultar correo electrónico" y pulsa enter, ejecutará el comando. Luego, en el siguiente mensaje (es decir: la próxima vez que la aplicación Java lea una línea de entrada) puede presionar la flecha hacia arriba y recuperar su comando "verificar correo electrónico". Puede presionar la tecla de la flecha izquierda para mover el cursor hacia la izquierda, etc. Esto es exactamente como lo quiero.
En Linux, sin embargo, al presionar la tecla hacia arriba, aparece^[[D para que aparezca. Las teclas de flecha izquierda y derecha producen una salida ASCII similar, como^[[C.
He oído hablar de stty y ver las páginas de manual, pero no puedo averiguar lo que tengo que cambiar en el script .sh con lanzamientos mi aplicación Java. ¿Alguien puede ayudarme?