
명령줄 앱을 실행할 때( $ gradle run
실제로 이것이 중요한지 여부는 모르겠습니다) 실수로 위쪽 화살표를 누른 다음 아래쪽 화살표를 눌러 프롬프트 줄로 돌아가면(즉, 내 app) 그리고 Return 키를 누르고 입력된 문자열을 검사하면 다음과 같은 내용이 표시됩니다.
No index open
> q
you entered: |a aaaq|
q<Return>
... 여기서는 화살표 키를 사용한 후에 " "만 입력했는데 ... 'q' 앞에 재미있는 내용이 추가되었습니다.
사용자 입력을 얻으려면 다음을 수행합니다(Groovy).
response = System.in.newReader().readLine()
화살표 키(및 유사한 작업을 수행할 수 있는 다른 키)를 "자동"으로 만드는 방법이 있습니까? NB 이것이 *nix BASH에도 적용되는지는 모르겠습니다...
답변1
Gradle은 Java 프로그램이고 Cygwin에는 자체 Java 시스템이 없으므로 Mintty 터미널 내에서 Windows 프로그램(Java 시스템)을 실행하고 있습니다.
따라서 일반적인 제약 조건이 적용됩니다.
명령줄 사용자 상호 작용("콘솔 모드")을 위해 기본 Windows API를 사용하는 프로그램과 상호 작용할 때 여러 가지 바람직하지 않은 효과가 관찰됩니다. 이것이 바로 pty 비호환 문제와 문자 인코딩 비호환 문제입니다. 이는 기본적으로 cygwin 또는 msys 환경에서 컴파일되지 않은 모든 프로그램에 영향을 미칩니다(이 맥락에서 MinGW는 msys가 아닙니다).
추가 정보와 가능한 부분 해결 방법이 보고되었습니다.
https://github.com/mintty/mintty/wiki/Tips#inputoutput-interaction-with-alien-programs